Python文件无法打开

时间:2014-08-16 04:31:02

标签: python file-io

只是尝试进行非常标准的打开并遍历文件:

file = open('test2.txt', 'r')
for line in file:
    #first,sec = line.split(',')
    #print "first", first
    print line

但是,它只打印最后一行。

更改为file.readline()可解决此问题。为什么不是第一种方式?

2 个答案:

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