我想在我的代码中读取一个巨大的文件.read()或readline()更快.循环怎么样:
for line in fileHandle
Run Code Online (Sandbox Code Playgroud)
Dun*_*can 22
对于一个文本文件,只需用循环迭代就可以了for.没关系速度,它是最干净的.
在某些版本的python中,readline()确实只读取一行,而for循环读取大块并将它们分成行,因此它可能更快.我认为更新版本的Python也使用缓冲,readline()所以性能差异将是微小的(for可能在显微镜下更快,因为它避免了方法调用).然而,出于性能原因选择一个而不是另一个可能是过早的优化.
编辑添加:我刚刚查看了一些Python发行说明.Python 2.5说:
将迭代文件与for line in file混合并调用文件对象的read()/ readline()/ readlines()方法现在是非法的.
Python 2.6引入了TextIOBase,它readline()同时支持迭代和迭代.
Python 2.7固定交织read()和readline().
ts.*_*ts. 15
如果文件很大,read()肯定是个坏主意,因为它将整个文件加载到内存中(没有大小参数).
Readline只读取一行,所以我认为这是大文件的更好选择.
只是迭代文件对象应该与使用readline一样有效.
有关详细信息,请参阅http://docs.python.org/tutorial/inputoutput.html#methods-of-file-objects
| 归档时间: |
|
| 查看次数: |
53567 次 |
| 最近记录: |