2016-05-20 7 views
0

ファイル内の3バイトのシーケンスを複数回置換する最も効率的な方法は何ですか?ファイル内のバイト列を置換する

ファイル全体をメモリに読み込み、検索、置き換え、泡立て、すすぎ、繰り返しを繰り返すことから始めました。しかし、私が「宿題の査読者」によって指摘されたように、自分のファイルが複数テラバイトになる可能性があるので、私の解決策は非効率的です。私の代わりの方法は、バイト単位で読み込み、バイト単位で比較する方法です。これは非効率的です。

EDIT:わかりやすく編集されています。うまくいけば。

+0

質問に言い換えてください。あなたはファイル全体の3バイトを置き換えようとしていますか?または1行に3バイト?データ例は – rayray84

+0

の更新に役立つかもしれません。私はそれがより明確であることを望む。 :-) – CaseyJones

答えて

0
f = open('workfile', 'r+b') 
f.seek(5)  # Go to the 6th byte in the file 
f.write('abc') 
f.close() 

ファイル内の既知のオフセットで置き換える必要があると仮定しています。それは私が不十分な質問から思いつくことができる唯一の結論です。 'a'が 'b'になり、 'c'が 'd'になるような置き換えを意味するならば、小さなチャンクでファイルを読み、その中で置換を実行して結果を書き出すだけです。

関連する問題