私は、オフセット(差)を計算して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後に何らかの処理(ライン)が、アイデアのthatsの並べ替えがあります。オフセットは127未満である限り、コードは正常に動作します。オフセットが127を超えると、バイナリデータと共に0xC2がファイルに表示されます。ファイル内の
データ(16進数表示、少しインド)を次のように現れる: 00 00 05 00 0E 00 17 00 20 00 3C 00 4E 00 7B 00 C2 8D 00 C2 92 00 C2 00
9Fでし誰かが問題の解決策を提案していますか?
'struct.pack( 'H'、np_uint16_instance)'は 'np_uint16_instance.tostring()'と同じだと思います。 – mgilson
これは私が探しているものではない文字列をファイルに書き出します。私は質問を更新しました。申し訳ありませんが、以前は分かりませんでした。 –