Umwandlung von string zu raw bytes
Schrieb ich ein Programm, das funktioniert mit rohen bytes (ich weiß nicht, ob das der richtige name!) aber der Benutzer wird die Eingabe der Daten als einfache Zeichenfolgen.
Wie Sie zu bekehren?
Habe ich versucht, mit einer Methode, aber es gibt eine Zeichenfolge mit der Länge 0!
Hier ist der Start-string:
5A05705DC25CA15123C8E4750B80D0A9
Hier ist das Ergebnis, das ich brauche:
\x5A\x05\x70\x5D\xC2\x5C\xA1\x51\x23\xC8\xE4\x75\x0B\x80\xD0\xA9
Und hier ist die Methode, die ich schrieb:
def convertStringToByte(string):
byte_char = "\\x"
n=2
result = ""
bytesList = [string[i:i+n] for i in range(0, len(string), n)]
for i in range(0, len(bytesList)):
bytesList[i] = byte_char + bytesList[i]
return result
wie wäre
return ''.join(bytesList)
?InformationsquelleAutor StepTNT | 2013-03-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
binascii.unhexlify()
:Das gleiche Modul hat
binascii.hexlify()
, zu einem Spiegel der operation.Demo:
Den
hexlify()
Betrieb produziert Kleinbuchstaben hex, aber das ist leicht behoben, mit einem.upper()
nennen.InformationsquelleAutor Martijn Pieters
Müssen Sie Holen Sie sich aus
5A
(ein string, der eine hexadezimale Zahl ist), um0x5A
oder90
(ganze zahlen) und füttern Sie inchr()
. Sie tun den ersten Konvertierung mitint('0x5A', 16)
, so bekommen Sie etwas, das wieInformationsquelleAutor rcpaul