San*_*Jha 3 python file readlines
截至目前,我使用以下python代码:
file = open(filePath, "r")
lines=file.readlines()
file.close()
Run Code Online (Sandbox Code Playgroud)
假设我的文件有几行(10,000或更多),那么如果我为多个文件执行此操作,我的程序会变慢.有没有办法加快Python的速度?阅读各种链接我理解readlines将文件行存储在内存中,这就是代码变慢的原因.
我也尝试了以下代码,我得到的时间增加了17%.
lines=[line for line in open(filePath,"r")]
Run Code Online (Sandbox Code Playgroud)
python2.4中是否还有其他模块(我可能已经错过了).谢谢,桑迪亚
for line in file:
Run Code Online (Sandbox Code Playgroud)
这为您提供了一个迭代器,它一次读取一行文件对象,然后从内存中丢弃上一行.
文件对象是它自己的迭代器,例如iter(f)返回f(除非f被关闭).当文件用作迭代器时,通常在for循环中(例如,对于f:print行中的行),将重复调用next()方法.此方法返回下一个输入行,或在达到EOF时引发StopIteration.为了使for循环成为循环文件行的最有效方式(一种非常常见的操作),next()方法使用隐藏的预读缓冲区.由于使用预读缓冲区,将next()与其他文件方法(如readline())结合使用是行不通的.但是,使用seek()将文件重新定位到绝对位置将刷新预读缓冲区.版本2.3中的新功能.
简短回答:不要将行分配给变量,只需在循环中执行您需要的任何操作.
| 归档时间: |
|
| 查看次数: |
2203 次 |
| 最近记录: |