Reputation: 13145
How do I print the escaped representation of a string, for example if I have:
s = "String:\tA"
I wish to output:
String:\tA
on the screen instead of
String: A
The equivalent function in java is:
String xy = org.apache.commons.lang.StringEscapeUtils.escapeJava(yourString);
System.out.println(xy);
from Apache Commons Lang
Upvotes: 21
Views: 17291
Reputation: 1124010
You want to encode the string with the string_escape
codec:
print s.encode('string_escape')
or you can use the repr()
function, which will turn a string into it's python literal representation including the quotes:
print repr(s)
Demonstration:
>>> s = "String:\tA"
>>> print s.encode('string_escape')
String:\tA
>>> print repr(s)
'String:\tA'
In Python 3, you'd be looking for the unicode_escape
codec instead:
print(s.encode('unicode_escape'))
which will print a bytes value. To turn that back into a unicode value, just decode from ASCII:
>>> s = "String:\tA"
>>> print(s.encode('unicode_escape'))
b'String:\\tA'
>>> print(s.encode('unicode_escape').decode('ASCII'))
String:\tA
Upvotes: 38
Reputation: 77039
print
uses str
, which processes escapes. You want repr
.
>>> a = "Hello\tbye\n"
>>> print str(a)
Hello bye
>>> print repr(a)
'Hello\tbye\n'
Upvotes: 0