xreadlines和for循环文件之间的区别

时间:2011-12-18 23:35:09

标签: python file

在Python 2.7中有一个文件对象:

f = open('my_file', 'r')

for循环文件(最常见的方式)和使用xreadlines()函数之间的区别是什么:

for line in f:
    # Do something with line

for line in f.xreadlines():
    # Do something with line

我的意思是,两个选项都定义了一个生成器,而readlines()read()函数则将所有文件内容加载到内存中。

是否有任何性能或文件处理改进?或者他们只是以同样的方式做同样的事情?

1 个答案:

答案 0 :(得分:20)

来自docs.python.org

file.xreadlines()
This method returns the same thing as iter(f).

New in version 2.1.

Deprecated since version 2.3: Use for line in file instead.

...在处理文件时最好使用with关键字;再次查看文档页面。

with open('my_file', 'r') as f:
    for line in f:
        # do stuff