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

Jun*_*ter 22 python

在Python中,之后

fh = open('file.txt')
Run Code Online (Sandbox Code Playgroud)

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

for l in fh:
    pass
Run Code Online (Sandbox Code Playgroud)

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

aar*_*ing 17

我想象它来自文件之前的迭代器并且是​​为了向后兼容而维护的.即使对于一个内胆,它是完全1相当多余的,因为list(fh)会做同样的事情在一个更直观的方式.这也让您可以自由做set(fh),tuple(fh)等等.

1gnibbler的答案.


Joh*_*ooy 16

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

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