打印str的转义表示

时间:2013-02-19 15:16:31

标签: python escaping

如何打印字符串的转义表示形式,例如,如果我有:

s = "String:\tA"

我希望输出:

String:\tA
屏幕上的

而不是

String:    A

java中的等效函数是:

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

来自Apache Commons Lang

5 个答案:

答案 0 :(得分:20)

您希望使用string_escape编解码器对字符串进行编码:

print s.encode('string_escape')

或者您可以使用repr() function,它会将字符串转换为它的python文字表示,包括引号

print repr(s)

演示:

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

在Python 3中,您将寻找unicode_escape编解码器:

print(s.encode('unicode_escape'))

将打印一个字节值。要将其重新转换为unicode值,只需从ASCII解码:

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

答案 1 :(得分:8)

您可以使用repr

print repr(s)

演示

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

这会给出引号 - 但你可以轻松地将它们分开:

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

答案 2 :(得分:0)

print repr(string)一个镜头

答案 3 :(得分:0)

与往常一样,它在python中很容易:

print(repr(s))

答案 4 :(得分:0)

print使用str来处理转义。你想要repr

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

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