考虑这个 python 程序:
import sys
lc = 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 的答案感兴趣。随意给出与操作系统无关的,甚至是其他操作系统的答案,如果你有的话。
另请参阅后续问题