15

バイナリ ファイルにデータを追加する際に問題が発生しています。seek()ある場所に移動し、その場所でファイル全体を読み取ると、必要な場所にデータが書き込まれていwrite()ないことがわかりました。代わりに、他のすべてのデータ/テキストの直後に見つけます。

私のコード

file = open('myfile.dat', 'wb')
file.write('This is a sample')
file.close()

file = open('myfile.dat', 'ab')
file.seek(5)
file.write(' text')
file.close()

file = open('myfile.dat', 'rb')
print file.read()  # -> This is a sample text

seekが機能していないことがわかります。これを解決するにはどうすればよいですか? これを達成する他の方法はありますか?

ありがとう

4

4 に答える 4

32

一部のシステムでは、'ab'すべての書き込みをファイルの最後で強制的に実行します。あなたはおそらく欲しいです'r+b'

于 2010-12-08T13:54:14.133 に答える
5

r+b はあなたが望むように動作するはずです

于 2010-12-08T14:26:39.243 に答える
2

seek コマンドを省略します。'a' を追加するためにファイルを既に開いています。

于 2010-12-08T13:56:04.877 に答える