2009-08-23

python でファイルオープン

まだ調査してますけど、
既存のファイルをオープンして更新する処理、
ってのが結構面倒ですね、オープンするだけが、、、


f = open("filename", "a+b")


でバイナリモードで「追記」で開けると思ってたんですが、

seek のマニュアルの通り、
> ファイルを追記モード (モード 'a' または 'a+') で開いた場合、書き込みを行うまでに行ったseek() 操作はすべて元に戻されるので注意してください。

ということで、ダミー値を書いてからではないと、
他の場所の更新が出来ないみたい。

望みの処理をしたい場合、


import os
if os.path.isfile("filename"):
f = open("filename", "r+b")
else:
f = open("filename", "w+b")


とやる必要があるみたい。

何それ面倒。

No comments: