在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
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)