Python-Struktur.pack() 'struct.Fehler: schlechte char in struct-format", wenn Sie versuchen zu speichern endian Typ
Ich versuche, pack ein string und die Länge einer Zeichenfolge.
fmt = '<P' + str(len(string)) + 'p'
Dies führt mich zu einem Fehler : "struct.Fehler: schlechte char in struct-format
In der Erwägung, tun
fmt = 'P' + str(len(string))+'p'
Nicht geben mir eine Fehlermeldung. Ich bin nicht in der Lage zu verstehen, warum dies geschieht, mein Verständnis ist, dass die Angabe von '<' am Anfang wird es little-endian-unabhängig von der nativen Maschine.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aus der
struct
module docstring:So können Sie nicht ändern Sie den endian Typ, wenn Sie die
P
- format; es ist nur im nativen format.Siehe auch Anmerkung 5 hier: https://docs.python.org/2/library/struct.html#format-characters
"<" verpackt die Daten als little-endian, aber es tut so, indem Sie die "Standard" - Anordnung, nicht die Maschine, native Regeln des Computers. Sie können finden Sie in der Tabelle auf das struct-Modul-Dokumentation.
Wie bereits von der Warren Weckesser, der P-format können nicht Ihre endian Typ geändert, aber wenn Sie verwenden Sie "<i" statt, zum Beispiel, die vollständig arbeiten.