我有一个程序计算偏移量(差异),然后使用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
相同。这会写一个字符串到文件中,而不是我正在寻找的。我已经更新了这个问题,对不起,如果以前不清楚的话。 –