为什么需要readlines(),而不是直接遍历文件句柄?
在Python中,经过
fh = open('file.txt')
之后,可以这样来逐行读取内容:
for l in fh:
pass
那么,为什么我们还需要用到 fh.readlines()
呢?
3 个回答
1
readlines()
会返回一个包含多行内容的列表。如果你不打算逐行处理这些内容,这个功能会很有用。
16
主要是为了向后兼容。readlines这个功能在文件对象可以被遍历之前就已经存在了。
使用readlines并指定大小参数也是从文件中读取数据最快的方法之一,因为它一次性读取一大块数据,但不需要一次性为整个文件分配内存。
19
我想这段代码是早期文件处理的方式,那时候文件还不是迭代器,所以为了向后兼容才保留了这个写法。即使是写成一行代码,这种方式也有点多余,因为用 list(fh)
就能更直观地完成同样的事情。而且这样你还可以自由地使用 set(fh)
、tuple(fh)
等等。
1 详情请见 John La Rooy的回答。