23

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

1
  • This question may be of interest to you, though the solution escapes a bit more than what you want.. Commented Feb 19, 2013 at 15:19

5 Answers 5

40

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 
Sign up to request clarification or add additional context in comments.

Comments

14

you can use repr:

print repr(s) 

demo

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

This will give the quotes -- but you can slice those off easily:

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

1 Comment

@MartijnPieters -- Never seen that before. neat. +1 to your answer :)
0

Give print repr(string) a shot

Comments

0

As ever, its easy in python:

print(repr(s)) 

Comments

0

print uses str, which processes escapes. You want repr.

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

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.