【发布时间】:2011-06-21 04:03:40
【问题描述】:
到目前为止,我使用以下 python 代码:
file = open(filePath, "r")
lines=file.readlines()
file.close()
假设我的文件有几行(10,000 或更多),那么如果我对多个文件执行此操作,我的程序就会变慢。有没有办法在 Python 中加快速度?阅读各种链接我知道 readlines 将文件行存储在内存中,这就是代码变慢的原因。
我也试过下面的代码,我得到的时间增益是 17%。
lines=[line for line in open(filePath,"r")]
python2.4 中是否还有其他模块(我可能错过了)。 谢谢, 桑迪亚
【问题讨论】:
-
哪些链接?我很想看到证明是这种情况的证据。
-
@Mikel: 来自 docstring: "readlines([size]) -> 字符串列表,每行来自文件。重复调用 readline() 并返回如此读取的行列表。可选的 size 参数(如果给定)是返回的行中总字节数的近似界限。"
-
@DSM:我的意思是说
readlines的文档更慢。 ;-) -
@Mike1: 啊,这使得 lot 作为一个问题更有意义。 :^)