计算文本文件中的行

时间:2013-07-22 18:44:16

标签: python for-loop

我正在尝试创建一个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()

7 个答案:

答案 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)