Umwandeln der Liste von byte-Ketten zu bytearray (byte-stream)
Habe ich eine Liste von hex-Zeichenfolgen, bytes, in der form "FF". Ich möchte konvertieren Sie die gesamte Liste, um ein byte-stream, so kann ich senden Sie es über ein socket (Python 3). Es sieht aus wie der Objekttyp "bytearray" funktionieren würde, aber ich finde keine Möglichkeit, direkt konvertieren Sie die Liste in ein bytearray.
Kann ich es auch manuell in einer Schleife, sondern die Figur muss es eine bessere Python-Weg, dies zu tun.
InformationsquelleAutor Lance Roberts | 2011-12-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie haben eine Menge 'em, könnte es sich lohnen, zu sehen, welche von denen ist am schnellsten.
Erste code-Kommentar:
0xDEADBEEF
ist eine ganze Zahl, die bezieht sich aufhexstrings
nur auf eine bigendian-Maschine. Der zweite code Kommentar: Dein code funktioniert mit python 2.7 ohne änderung; es müsste eine größere Operation, um es zu erhalten zu arbeiten auf früheren Versionen z.B."".join([chr(int(x, 16)) for x in hexstrings])
wird die Arbeit für Python 2.1 bis 2.7 inclusive.Der erste Kommentar war lediglich eine Möglichkeit, zu schreiben "Ox Dead Beef" in hex, aber Sie sind technisch korrekt -- die beste Art richtig!!!! Und "big-endian" - ox dead beef" ist wohl noch Lustiger. 🙂 Auf dem zweiten, es war eigentlich Python 2.6, die darauf bestanden, einen Unicode-string gibt, aber das scheint ein Fehler zu sein. 2.7 verhält sich so, wie Sie Staat, und ich habe das geändert. (
bytearray
wurde eingeführt, 2.6, nur fürs Protokoll.)InformationsquelleAutor kindall
Siehe auch bytearray.fromhex:
Gute Entscheidung, kindall Lösung die richtige ist.
InformationsquelleAutor MagerValp
Finden Sie unter :
char* PyByteArray_AsString(PyObject *bytearray)
Return den Inhalt von bytearray als ein char-array nach der überprüfung auf einen NULL-Zeiger
aus der python-doc-reference
InformationsquelleAutor Sushant Khurana