Pythonでファイルに追加するには?
ファイルを上書きするのではなく、どのようにしてファイルに追加するのですか?ファイルに追記する特別な関数はありますか?
1439
3
ファイルを上書きするのではなく、どのようにしてファイルに追加するのですか?ファイルに追記する特別な関数はありますか?
a "または "ab "をモードとして設定することで、ファイルをアペンドモードで開く必要があります。open()]1*を参照してください。
a "モードでオープンすると、書き込み位置は常に**ファイルの最後になります(アペンド)。a+"で開くと、読み取り、逆方向へのシーク、読み取りが可能になります(ただし、すべての書き込みはファイルの最後になることに変わりはありません!)。
例
注意。a' を使うことは、'w' で開いてファイルの最後までシークすることとは違います。シークと書き込みの間に他のプログラムがファイルを開いて書き込みを始めたらどうなるかを考えてみてください。他のプログラムがファイルを開き、シークと書き込みの間に書き込みを開始した場合のことを考えてみてください。一部のオペレーティングシステムでは、'a'でファイルを開くと、それ以降の書き込みがすべてファイルの最後にアトムで追加されることが保証されます(他の書き込みによってファイルが大きくなっても)。
a」モードの動作についてもう少し詳しく説明します(※Linuxでのみテスト済み)。シークバックしても、すべての書き込みがファイルの最後に追加されます。
実際、
fopen
manpageには次のように書かれています。古い簡略化された答え(
with
を使っていない)。例: (*実際のプログラムでは with` を使ってファイルを閉じる - [ドキュメント][3]を参照)
[3]: http://docs.python.org/2/whatsnew/2.6.html#pep-343-the-with-statement
modeの引数には
"a"
を渡したいところです。 open()]1のドキュメントを参照してください。modeの引数には、update(+)、truncating(w)、binary(b)の各モードの組み合わせがありますが、
"a"
だけで始めるのが最も良い方法です。