Stringumwandlung

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
erka
User
Beiträge: 17
Registriert: Montag 24. April 2006, 16:01

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 :?:
rayo
User
Beiträge: 773
Registriert: Mittwoch 5. November 2003, 18:06
Wohnort: Schweiz
Kontaktdaten:

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
Nirven
User
Beiträge: 130
Registriert: Mittwoch 10. Mai 2006, 08:18
Wohnort: Bremerhaven

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.
snlake
User
Beiträge: 1
Registriert: Mittwoch 27. September 2006, 12:56

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
erka
User
Beiträge: 17
Registriert: Montag 24. April 2006, 16:01

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 :)
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

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
Antworten