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