11

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

s = "String:\tA"

我希望输出:

String:\tA

在屏幕上而不是

String:    A

java中的等价函数是:

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

来自Apache Commons Lang

4

5 回答 5

28

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

print s.encode('string_escape')

或者您可以使用该repr()函数,它将一个字符串转换为它的 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
于 2013-02-19T15:21:51.203 回答
10

你可以使用repr

print repr(s)

演示

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

这将给出引号 - 但您可以轻松地将它们切掉:

>>> print repr(s)[1:-1]
String:\tA
于 2013-02-19T15:17:54.590 回答
0

试一试print repr(string)_

于 2013-02-19T15:18:26.010 回答
0

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

print(repr(s))
于 2013-02-19T15:18:34.913 回答
0

printuses str,它处理转义。你想要repr

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

>>> print repr(a)
'Hello\tbye\n'
于 2013-02-19T15:19:34.790 回答