[英]Python program for writing length of list to file
我有一个文件list.txt
只包含一个列表,例如
[asd,ask,asp,asq]
这份清单可能很长。 我想创建一个 python 程序len.py
读取list.txt
并将内列表的长度写入文件num.txt
。 类似于以下内容:
fin = open("list.txt", "rt")
fout = open("num.txt", "wt")
for list in fin:
fout.write(len(list))
fin.close()
fout.close()
但是,这不起作用。 有人能指出需要改变什么吗? 非常感谢。
利用:
with open("list.txt") as f1, open("num.txt", "w") as f2:
for line in f1:
line = line.strip('\n[]')
f2.write(str(len(line.split(','))) + '\n')
with open("list.txt") as fin, open("num.txt", "w") as fout:
input_data = fin.readline()
# check if there was any info read from input file
if input_data:
# split string into list on comma character
strs = input_data.replace('[','').split('],')
lists = [map(int, s.replace(']','').split(',')) for s in strs]
print(len(lists))
fout.write(str(len(lists)))
我更新了代码以使用另一个答案中的 with 语句。 我还使用了这个答案中的一些代码( 如何将此字符串转换为列表列表? )来(更多?)正确计算嵌套列表。
当 python 尝试使用默认方法读取文件时,它通常将该文件的内容视为字符串。 因此,首要责任是将转换字符串内容键入适当的内容类型,因为您不能使用默认类型转换方法。
您可以使用名为ast的特殊 package 类型转换数据。
import ast
fin = open("list.txt", "r")
fout = open("num.txt", "w")
for list in fin.readlines():
fout.write(len(ast.literal_eval(list)))
fin.close()
fout.close()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.