我有一個程序計算偏移量(差異),然後使用numPy將它們存儲在16位無符號整數中,並且我想將此int存儲到二進制文件中,因爲它是二進制文件形成。即如果offset的值是05,我希望文件顯示「01010000 00000000」,但不是字符串。 我寫的代碼是:Python:將int寫入二進制文件
target = open(file_cp, 'wb')
target.write('Entries')
target.write('\n')
Start = f.tell()
while(!EOF):
f.read(lines)
Current = f.tell()
offset = np.uint16(Current-Start)
target.write(offset)
有後f.read(系)進行一些處理,但多數民衆贊成那種想法。只要偏移量小於127,代碼就可以正常工作。一旦偏移量超過127,文件中會出現0xC2以及二進制數據。在文件中出現
數據如下(十六進制視圖,小印度): 00 00 05 00 0E 00 17 00 20 00 3C 00 4E 00 7B 00 C2 8D 00 C2 92 00 C2 9F 00
莫非有人建議解決這個問題?
我認爲'struct.pack('H',np_uint16_instance)'與'np_uint16_instance.tostring()' – mgilson
相同。這會寫一個字符串到文件中,而不是我正在尋找的。我已經更新了這個問題,對不起,如果以前不清楚的話。 –