我想在我的代码中读取一个大文件。为此,read() 或 readline() 更快。循环怎么样:
for line in fileHandle
最佳答案
对于文本文件,只需使用 for
循环对其进行迭代几乎总是可行的方法。别管速度,它是最干净的。
在python的某些版本中,readline()
确实只读取一行,而 for
循环读取大块并将它们分成几行,因此它可能更快.我认为最新版本的 Python 也为 readline()
使用缓冲,因此性能差异将很小(for
可能仍然在微观上更快,因为它避免了方法调用) .然而,出于性能原因选择其中一个可能是过早的优化。
编辑添加:我刚刚查看了一些 Python 发行说明。 Python 2.5 说:
It’s now illegal to mix iterating over a file with for line in file and calling the file object’s read()/readline()/readlines() methods.
Python 2.6 引入了 TextIOBase,它同时支持迭代和 readline()
。
Python 2.7 修复了交错 read()
和 readline()
。
关于python - 在 Python 中,是 read() 还是 readlines() 更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5076024/