只是尝试进行非常标准的打开并遍历文件:
file = open('test2.txt', 'r')
for line in file:
#first,sec = line.split(',')
#print "first", first
print line
但是,它只打印最后一行。
更改为file.readline()
可解决此问题。为什么不是第一种方式?
答案 0 :(得分:2)
不要使用readlines
,正如其他答案中所建议的那样。它是slow
相反,这样做:
with open('test2.txt') as f:
for line in f:
print line
这里的优点是您不是先将整个文件读入内存然后再处理。此外,通过使用with
,当您离开该区块时,您的填充将自动关闭。
如果您需要将文件放入列表中(如readlines
那样),那么请明确说明。
with open('foo.txt') as f:
lines = list(f)
现在lines
是一个可以多次迭代的列表。
for line in lines:
print line
for line in lines:
print "Loop 2 - %s" % (line)
答案 1 :(得分:1)
第一种方式,如果涉及更大的文件,那将是无效的:
file = open('test2.txt', 'r')
for line in file.readlines():
print line
另一种方式(在How to read large file, line by line in python中提到):
with open('a.txt','r') as f:
for line in f:
print line