我正在尝试创建一个Python代码,用于计算文本文件中的行数。但是,它不会识别for语句,因为它会给我下面的缩进错误。
#*********************end of sec 1*****************************
item=open("back.txt","r")
i=0
countlist=[line.strip() for line in item]#seperate lines
i=1+i
print i
item.close()
答案 0 :(得分:2)
print len(list(open("some_file.txt")))
不需要with ...
或关闭文件......这不会保留对fh的引用所以它应该垃圾收集并销毁就好了
答案 1 :(得分:1)
试试这个,
with open("back.txt", "r") as backfile:
lines = backfile.readlines()
return len(lines)
答案 2 :(得分:1)
with open("back.txt") as f:
print len(f.readlines())
答案 3 :(得分:1)
试试这个:
for line in item:
i=i+1
答案 4 :(得分:1)
with open('back.txt', 'r') as item:
nbr = sum(1 for i in item)
生成器表达式,不应该在内存中不需要太多。
答案 5 :(得分:0)
for封装在括号中,i = 1 + i不在for循环的范围内。因此,i = 1 + 1不应缩进。
答案 6 :(得分:0)
您实际上没有for
循环。你有一个列表理解。列表推导不允许或要求在每次迭代时执行缩进的语句块;它只是建立一个列表。如果您只想要行数,则需要:
with open(filename) as f:
rowcount = sum(1 for line in f)
这样在你完成时关闭文件,即使在CPython以外的Python实现上也没有,并且它不会将整个文件存储在内存中,因此它适用于大文件。如果您需要实际的行列表,您需要这样:
with open(filename) as f:
rows = [line.strip() for line in f]
rowcount = len(rows)