2010-12-08 73 views
6

我在將數據附加到二進制文件時遇到問題。當我尋求()到一個位置,然後寫入()在那個位置,然後讀取整個文件,我發現數據沒有寫在我想要的位置。相反,我發現在每一個其他數據/文本之後都是正確的。如何尋找並追加到Python中的二進制文件?

我的代碼

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() 

#prints: This is a sample **text** 

你可以看到,尋求不起作用。我如何解決這個問題,是否有其他方法來實現這一目標?

感謝

回答

15

在某些系統上,'ab'力量都寫在文件的結尾發生。你可能想要'r+b'

+2

從文檔的`seek`方法:「如果該文件只打開追加模式寫入(模式‘A’),這種方法本質上是一個沒有-op,「 – bgporter 2010-12-08 14:13:50

+0

@bgporter:你支持還是反駁我說的話?我真的不知道。 – 2010-12-08 14:16:22

1

退出尋找命令。您已經打開文件以附加'a'。

2

R + B應該工作,你想