Ich habe eine ASCII-Zeichenfolge = "abcdefghijk". Ich möchte dies mit Python in eine Binärdatei im Binärformat schreiben.Schreiben einer ASCII-Zeichenfolge als Binärdatei in Python
Ich habe versucht, folgende:
str = "abcdefghijk"
fp = file("test.bin", "wb")
hexStr = "".join((("\\x%s") % (x.encode("hex"))) for x in str)
fp.write(hexStr)
fp.close()
Allerdings, wenn ich öffnen Sie die test.bin ich folgendes im ASCII-Format anstatt binär zu sehen.
\x61\x62\x63\x64\x65\x66\x67
ich es verstehe hier, weil für zwei Schrägstriche ("\\ x% s"). Wie kann ich dieses Problem beheben? Danke im Voraus.
Update:
Nach gibt mir das erwartete Ergebnis:
file = open("test.bin", "wb")
file.write("\x61\x62\x63\x64\x65\x66\x67")
file.close()
Aber wie kann ich erreichen dies mit "abcdef" ASCII-String. ?
Sie * sehr sorgfältig * codieren die Zeichen als hex - warum erwarten Sie, etwas anderes zu sehen? – jonrsharpe
Welche Leistung haben Sie dann erwartet? Ich bin mir nicht sicher, ob du verstehst, was der binäre Modus * macht oder was Python für '\ xhh'-Notation benutzt (und es ist nur * Syntax *, eine Möglichkeit, einen Wert zu erzeugen, nicht den Wert selbst). –
@jonrsharpe, ich möchte "\ x61 \ x62 \ x63 \ x64 \ x65 \ x66 \ x67" als Binärdatei in test.bin (nicht als ASCII-Zeichenfolge) schreiben. Wie kann ich das machen? Und schließlich sollte die test.bin eine Binärdatei sein. – aMa