Ich versuche den besten Weg herauszufinden, ob die Maschine, auf der mein Code läuft, Big-Endian oder Little-Endian ist. Ich habe eine Lösung, die funktioniert (obwohl ich es nicht auf einer Big-Endian-Maschine getestet habe), aber es scheint ein wenig klobig:Was ist die pythonischste Methode, um Endianess zu bestimmen?
import struct
little_endian = (struct.pack('@h', 1) == struct.pack('<h', 1))
Dies ist nur ein ‚native‘ Zwei-Byte-Pack auf ein wenig zu vergleichen -Endian-Paket. Gibt es einen schöneren Weg?
Warum müssen Sie wissen? Ihre Lösung scheint gut genug zu sein, aber Sie müssen sicherlich nicht wissen, wenn Sie 'struct' selbst verwenden? – u0b34a0f6ae
Wahr, aber ich benutze nicht das Strukturmodul (vielleicht sollte ich sein, aber ich bin nicht der ursprüngliche Autor des Codes, den ich festlege). –