2011-06-30 4 views
7

私は、いくつかの巨大なファイルのヘッダ(最初の行のみ)を更新するpythonスクリプトを書こうとしていますが、新しいヘッダは同じサイズである必要はない(バイト単位の)元のファイルとして、巨大なファイルの残りの部分に触れることなくヘッダーを変更することができますか?またはそれらをすべて読んでファイルに書き戻す必要がありますか?効率的な方法でPythonのファイルのヘッダを変更する

+0

ヘッドを変更した場合は、最初の行の後に残りのファイルを書き込む必要があります。これはファイルシステムの仕組みです。 –

答えて

4

いいえ、ファイル全体に触れることなくファイルに対して実行できる操作は、truncation,replacement of same size、および追加のみです。

ただし、ファイルの比較的小さな部分をバッファリングして、メモリが枯渇しないように、現在新しい位置にあるすべてのデータを読み込んだ後に書き込むことができます。速度が問題になる場合は、mmapの使用を検討してください。

+0

ええ、私はそれが私が避けることができるものではないと思う..ありがとう皆 – John

1

私はあなたがファイルの任意のチャンクを削除できるOSに慣れていないので、Pythonはあなたにその機能を与えることはできません。私はあなたが巨大なファイルの残りの部分に触れているのではないかと心配しています。

0

ファイル全体を読み書きする必要があります。ファイルの内容の残りの部分は、ヘッダーのサイズの違いに合わせて移動する必要があるためです。

関連する問題