打印str的转义表示

Baz*_*Baz 8 python escaping

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

s = "String:\tA"
Run Code Online (Sandbox Code Playgroud)

我希望输出:

String:\tA
Run Code Online (Sandbox Code Playgroud)

在屏幕上而不是

String:    A
Run Code Online (Sandbox Code Playgroud)

java中的等效函数是:

String xy = org.apache.commons.lang.StringEscapeUtils.escapeJava(yourString);
System.out.println(xy);
Run Code Online (Sandbox Code Playgroud)

来自Apache Commons Lang

Mar*_*ers 21

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

print s.encode('string_escape')
Run Code Online (Sandbox Code Playgroud)

或者您可以使用该repr()函数,该函数将字符串转换为包含引号的python文字表示:

print repr(s)
Run Code Online (Sandbox Code Playgroud)

示范:

>>> s = "String:\tA"
>>> print s.encode('string_escape')
String:\tA
>>> print repr(s)
'String:\tA'
Run Code Online (Sandbox Code Playgroud)

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

print(s.encode('unicode_escape'))
Run Code Online (Sandbox Code Playgroud)

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

>>> s = "String:\tA"
>>> print(s.encode('unicode_escape'))
b'String:\\tA'
>>> print(s.encode('unicode_escape').decode('ASCII'))
String:\tA
Run Code Online (Sandbox Code Playgroud)


mgi*_*son 9

你可以使用repr:

print repr(s)
Run Code Online (Sandbox Code Playgroud)

演示

>>> s = "String:\tA"
>>> print repr(s)
'String:\tA'
Run Code Online (Sandbox Code Playgroud)

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

>>> print repr(s)[1:-1]
String:\tA
Run Code Online (Sandbox Code Playgroud)