私はイベント ログ用の純粋な Python ファイル パーサーに取り組んでおり、そのサイズはキロバイトからギガバイトまでさまざまです。明示的な// .open()
/呼び出しを単純なバッファのようなオブジェクトに抽象化するモジュールはありますか? これは の逆と考えることができます。次のようになると思います。.seek()
.read()
.close()
StringIO
with FileBackedBuffer('/my/favorite/path', 'rb') as buf:
header = buf[0:0x10]
footer = buf[0x10000000:]
モジュールは私のmmap
要件を満たすかもしれません。ただし、フィードバックをいただければ幸いです。
- モジュールが使用可能な RAM/スワップよりも大きなファイルを処理することが重要です。これがうまくできるかどうかはわかり
mmap
ません。 - コンストラクタは
mmap
OS によって異なります。うまくクロスプラットフォームのコードを書こうとしていて、OS の仕様をいじりたくないので、これは私を躊躇させます。必要に応じてそうしますが、これにより、間違った場所を探している可能性があるという警告が発せられました。
そのようなタスクの正しいモジュールである場合mmap
、これらの 2 つの点をどのように処理しますか? そうでない場合、適切なモジュールは何ですか?