是否可以加快python IO的速度?
考虑以下python程序:
import syslc = 0
for line in open(sys.argv[1]):
lc = lc + 1
print lc, sys.argv[1]
在我的6GB文本文件上运行它,大约2分钟即可完成。
问题:
请注意,以下情况需要相同的时间:
wc -l myfile.txt
因此,我怀疑我的疑问只是一个简单的“否”。
还要注意,我的真实程序正在做的事情不仅仅是计数行数,因此请给出一个通用的答案, 行数计数技巧(例如在文件中保留行数元数据)
PS:我将此问题标记为“ linux”,因为我仅对特定于linux的答案感兴趣。如果有答案,请随时提供与操作系统无关的答案,甚至与其他操作系统无关。
回答:
您无法获得比最大磁盘读取速度更快的速度。
为了达到最大磁盘速度,您可以使用以下两个技巧:
- 用大缓冲区读入文件。这可以“手动”编码,也可以使用io.BufferedReader(在python2.6 +中可用)简单地编码。
- 在另一个线程中并行进行换行计数。
以上是 是否可以加快python IO的速度? 的全部内容, 来源链接: utcz.com/qa/421585.html