似乎mmap接口只支持readline()方法。如果我尝试迭代该对象,我会得到单个字符而不是完整的行。
在Python中,如何以"pythonic"的方式逐行读取一个mmap文件?
import sys
import mmap
import os
if (len(sys.argv) > 1):
STAT_FILE=sys.argv[1]
print STAT_FILE
else:
print "Need to know <statistics file name path>"
sys.exit(1)
with open(STAT_FILE, "r") as f:
map = mmap.mmap(f.fileno(), 0, prot=mmap.PROT_READ)
for line in map:
print line # RETURNS single characters instead of whole line