打印字符串的转义表示

18 投票
5 回答
15238 浏览
提问于 2025-04-17 16:22

我想知道如何打印一个字符串的转义表示,比如我有:

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

在Python中,这个事情总是很简单:

print(repr(s))
12

你可以使用 repr 这个功能:

print repr(s)

示例

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

这样做会给你加上引号——不过你可以很简单地把它们去掉:

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

你想用 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

撰写回答