String Escapen

Wenn man einen String braucht, bei dem jedes ' durch ein \' ersetzt wird kann man den string-escape-Codec verwenden:

   1 >>> 'spam \'eggs\' python'
   2 "spam 'eggs' python"
   3 >>> print 'spam \'eggs\' python'.encode('string-escape')
   4 "spam \\'eggs\\' python"

Der umgegekehrte Weg ist mit folgendem Code möglich:

   1 >>> "spam \\'eggs\\' python"
   2 "spam \\'eggs\\' python"
   3 >>> "spam \\'eggs\\' python".decode('string-escape')
   4 "spam 'eggs' python"

Diese Methode verlangt allerdings, dass der Text mit einfachen Anführungszeichen maskiert ist und nicht mit doppelten.

Hilfreich ist ein "String-Escape" auch zu Debug-Zwecke, weil es Steuerzeichen sichtbar machen kann. So kann man z.B. überprüfen, ob eine Textzeile ala Windows (\r\n) oder ala Unix (nur \n) zeilenweise getrennt ist:

   1 text = """Ein Satz
   2 getrennt"""
   3 print text.encode("string-escape")

Ausgabe:

Ein Satz\ngetrennt

String Escapen (last edited 2009-06-17 16:14:16 by localhost)