2013-02-19 9 views
5

Wie drucke ich die entwichene Darstellung einer Zeichenfolge, zum Beispiel, wenn ich:Drucke entkam Darstellung eines str

s = "String:\tA" 

ich ausgeben will:

String:\tA 

auf dem Bildschirm statt

String: A 

Die äquivalente Funktion in Java ist:

String xy = org.apache.commons.lang.StringEscapeUtils.escapeJava(yourString); 
System.out.println(xy); 

von Apache Commons Lang

+0

[Diese Frage] (http://stackoverflow.com/questions/4202538/python-escape-special-characters) kann von Interesse sein, Sie, obwohl die Lösung ein bisschen mehr als das, was Sie wollen, entkommt. – m01

Antwort

16

Sie möchten die Zeichenfolge mit dem string_escape Codec kodieren:

print s.encode('string_escape') 

oder können Sie die repr() function verwenden, die einen String verwandeln wird in es Python Literaldarstellung ist einschließlich der Anführungszeichen:

print repr(s) 

Demonstration:

In Python 3, dann würden Sie für die unicode_escape Codec suchen statt:

print(s.encode('unicode_escape')) 

, die einen Byte-Wert gedruckt werden. Um das zu drehen wieder in einen Unicode-Wert, dekodieren nur aus ASCII:

>>> s = "String:\tA" 
>>> print(s.encode('unicode_escape')) 
b'String:\\tA' 
>>> print(s.encode('unicode_escape').decode('ASCII')) 
String:\tA 
+0

Ich möchte nur noch einmal sagen, dass das ordentlich ist. Als jemand, der fast ausschließlich in ASCII arbeitet, denke ich nicht oft an die Kodierung - (obwohl ich versuche, auf diese Dinge achtsamer zu sein). - Leider, jetzt, da du die beste Antwort bist, wird meine wahrscheinlich aufhören, Upvotes zu bekommen ;-). – mgilson

+0

@mgilson Ich habe Martjins Antwort aufgefrischt, weil mir die Existenz von 'string_escape' und mgilson's Antwort nicht bekannt war, weil ich eine gute Laune habe :) – eyquem

8

können Sie repr verwenden:

print repr(s) 

Demo

>>> s = "String:\tA" 
>>> print repr(s) 
'String:\tA' 

Dies wird die Zitate geben - aber Sie können diejenigen aus leicht schneiden:

>>> print repr(s)[1:-1] 
String:\tA 
+1

Oder Sie können zu 'string_escape' kodieren. :-) –

+1

@MartijnPieters - Nie zuvor gesehen. ordentlich. +1 zu deiner Antwort :) – mgilson

0

Geben print repr(string) ein Schuss

0

Wie immer ist es einfach in Python:

print(repr(s)) 
0

print verwendet str, die Fluchten verarbeitet. Sie möchten repr.

>>> a = "Hello\tbye\n" 
>>> print str(a) 
Hello bye 

>>> print repr(a) 
'Hello\tbye\n' 
Verwandte Themen