在Python中,为什么我们可以迭代文件句柄本身时需要readlines()?

时间:2010-10-14 12:47:55

标签: python

在Python中,在

之后
fh = open('file.txt')

可以执行以下操作来迭代线:

for l in fh:
    pass

那我们为什么要fh.readlines()

3 个答案:

答案 0 :(得分:17)

我认为它来自文件之前的迭代器,并且是为了向后兼容而维护的。即使对于单行,它的完全 1 相当多余,因为list(fh)将以更直观的方式做同样的事情。这也让您可以自由地set(fh)tuple(fh)等等。

1 请参阅gnibbler's answer

答案 1 :(得分:16)

主要是为了向后兼容。 readlines在文件对象可迭代之前就已经存在了

使用带有size参数的readlines也是从文件读取的最快方法之一,因为它在一次点击中读取了大量数据,但不需要一次性为整个文件分配内存

答案 2 :(得分:1)

readlines()会返回一个行列表,如果您不打算遍历每一行,则可能需要这些行。