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

jul*_*ria 11 python file

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

f = open('my_file', 'r')
Run Code Online (Sandbox Code Playgroud)

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

for line in f:
    # Do something with line
Run Code Online (Sandbox Code Playgroud)

for line in f.xreadlines():
    # Do something with line
Run Code Online (Sandbox Code Playgroud)

我的意思是,这两个选项定义了发电机,而相比之下,readlines()read()功能加载所有的文件内容到内存中.

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

Fre*_*ihl 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.
Run Code Online (Sandbox Code Playgroud)

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

with open('my_file', 'r') as f:
    for line in f:
        # do stuff
Run Code Online (Sandbox Code Playgroud)