Seite 1 von 1

Stringumwandlung

Verfasst: Dienstag 26. September 2006, 15:48
von erka
Hallo,
Ich bin ein Anfänger.
Ich möchte folgenden String:

'1234567890'

mittels eines Codes in den folgenden String umwandeln:

'\x12\x34\x56\x78\x90'

Wie kann ich das erreichen?

Vielen Dank :?:

Verfasst: Dienstag 26. September 2006, 16:28
von rayo
Hi

So?

Code: Alles auswählen

a = '1234567890'
l = []
for x in zip(a[::2],a[1::2]):
    l.append(chr(int('0x'+x[0]+x[1], 16)))
print repr("".join(l))
Gruss

Verfasst: Mittwoch 27. September 2006, 07:06
von Nirven
Edit: einfach nicht lesen, zu früh am Morgen :roll:

Da kommt bei mir aber was anderes raus, so komplex wollte erka das glaube ich garnicht.

Ich habe mal rayos Code als Grundlage genommen:

Code: Alles auswählen

a = '1234567890'
L = ""
for x in zip(a[::2],a[1::2]):
    L += ('\\x'+x[0]+x[1])
Damit sind die Backslashes in L escaped, mit print l kommt dann das raus, was du haben wolltest.

Verfasst: Mittwoch 27. September 2006, 13:11
von snlake
Oder mittels binascii.unhexlify:

Code: Alles auswählen

>>> from binascii import unhexlify
>>> s = unhexlify('1234567890')
>>> s
'\x124Vx\x90'
>>> s == '\x12\x34\x56\x78\x90'
True

Stringumwandlung Danke schoen

Verfasst: Donnerstag 5. Oktober 2006, 20:28
von erka
Vielen Dank
snlake, Nirven und rayo.
Ich hatte mehrere Tage schwieriegkeiten mich auf dem python-forum einzuloggen. Eure Vorschlaege konnte ich erst jetzt abrufen und ich werde alle gleich ausprobieren.

Danke

erka :)

Re: Stringumwandlung Danke schoen

Verfasst: Freitag 6. Oktober 2006, 18:48
von Joghurt
erka hat geschrieben:Ich hatte mehrere Tage schwieriegkeiten mich auf dem python-forum einzuloggen.
Nicht nur du :wink:
http://www.python-forum.de/topic-7410.html