Seite 1 von 1

Bestimmte Zeichen eines Strings in Hex umwandeln

Verfasst: Mittwoch 29. August 2007, 15:36
von Stolzi
Hi,
viell kann mir wer helfen, bei mir setzts da aus ;-)
Ich sollte folgende Zeichen eines Strings:
\ / : * ? | < > #
in # und danach den Zeichencode als 2 Stellen Hex verwandeln.
Danke
Stolzi

Verfasst: Mittwoch 29. August 2007, 15:53
von Y0Gi

Code: Alles auswählen

>>> ':'.encode('hex')
'3a'
Entspricht in etwa dem hier (für ein Zeichen):

Code: Alles auswählen

>>> ord(':')
58
>>> hex(58)
'0x3a'
Die Zeichen kannst du einfach mit `'einstring'.replace()` ersetzen.

Verfasst: Mittwoch 29. August 2007, 17:21
von Stolzi
Danke dir, war genau was ich suchte. Passt jetzt zwar nicht ganz hier rein, aber wie macht mann denn das am schönsten? Ich meine mit
Ordner=Ordner.replace(":","#"+':'.encode('hex'))
Zeichen für Zeichen durch zu gehen läßt sich sicher schöner bzw kürzer machen?

Viell kannst mir da noch einen Tip geben?

Danke
Stolzi

Verfasst: Mittwoch 29. August 2007, 17:30
von birkenfeld
So zum Beispiel:

Code: Alles auswählen

import re
Ordner = re.sub(r"[\\/:*?|<>#]", lambda m: "#"+m.group(0).encode("hex"), Ordner)

Verfasst: Mittwoch 29. August 2007, 18:34
von Stolzi
Arg, ok jetzt hab ich was zu knabbern um das zu verstehn. Danke dir ;-)