python - 在 Python 中,是 read() 还是 readlines() 更快?

标签 python io

我想在我的代码中读取一个大文件。为此,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/

相关文章:

c++ - 在返回对象引用的 Python 中调用 C++ DLL

python - 使用 Notepad++ 运行 Python

python - 为什么迭代器在 Python 文档中被认为是函数式的?

java - 原子地写两个文件

multithreading - 在 goroutine 中执行 I/O 时,Go 会阻塞当前线程吗?

ruby - 将多个输入源连接到 Ruby 中的单个 IO 对象

.net - FileStream和StreamWriter-写入后如何截断文件的其余部分?

python - 从 django 管理中删除添加另一个

Java检查用户是否在控制台中输入

python - 在分布式计算中,世界规模和等级是多少?