Ich habe ein Programm, das den Offset (Differenz) berechnet und speichert sie dann in einem 16 Bit unsigned int mit numPy und ich möchte dieses Int in einer binären Datei speichern, wie es in binär ist bilden. Wenn der Wert von offset 05 ist, möchte ich, dass die Datei "01010000 00000000" anzeigt, aber nicht als String. Der Code, den ich geschrieben habe, ist:Python: Int in eine Binärdatei schreiben
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)
dort ein Teil der Verarbeitung nach f.read (Linien) ist, aber das ist sozusagen die Idee. Der Code funktioniert gut, solange der Offset kleiner als 127 ist. Sobald der Offset über 127 hinausgeht, erscheint in der Datei ein 0xC2 zusammen mit den Binärdaten.
Daten in der Datei erscheinen, wie folgt (hex Ansicht, wenig indian): 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
Could jemand schlägt eine Lösung für das Problem vor?
Ich denke, dass 'struct.pack ('H', np_uint16_instance)' ist das gleiche wie 'np_uint16_instance.tostring()' – mgilson
Dies wird eine Zeichenfolge in die Datei schreiben, die nicht das ist, was ich suche. Ich habe die Frage aktualisiert, tut mir leid, wenn es vorher nicht klar war. –