mmapインターフェイスはreadline()しかサポートしていないようです。 オブジェクトを反復しようとすると、完全な行ではなく文字が得られます。Pythonでmmapファイルから行を読み込む方法は?
mmap'edファイルを1行ずつ読み込む「pythonic」方法は何ですか?
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
である通常のファイルとは反対に、このためのメモリマップファイルを使用する動機は何でしょうか。 – NPE
@aix:GBの生データを持っている可能性があり、可能な限り効率的な方法でアクセスしたいと考えています。しかし、本当の理由は:それはよりクーラーです:) –
私はそれがよりクーラーかどうかわかりませんが、あなたは単にそれがより速いと仮定すべきではありません(あなたが本当に気にしていれば、プロファイルする必要があります)。 – NPE