如何在Python中编写不需要转义的字符串字面量?

152 投票
6 回答
183711 浏览
提问于 2025-04-16 10:02

有没有办法在Python中声明一个字符串变量,让里面的所有内容都自动转义,或者说保持它的字面字符值?

不是在问怎么用反斜杠来转义引号,这个很明显。我想要的是一种通用的方法,可以让字符串里的所有内容都变成字面值,这样我就不用手动去一个个转义很大的字符串了。

6 个回答

14

其实没有这种东西。看起来你想要的是像Perl和一些命令行工具里的“这里文档”,但Python没有这个功能。

使用原始字符串或多行字符串只是意味着你需要担心的事情少了一些。如果你使用原始字符串,仍然需要处理结尾的“\”符号,而无论你用什么字符串方式,都得注意结尾的引号,比如“"”、“'”、“'''”或“"""”,如果这些符号出现在你的数据里。

也就是说,想要把这个字符串

 '   ''' """  " \

正确地存储在Python的字符串字面量中,就必须进行某种内部转义处理。

102

如果你在处理非常大的字符串,特别是多行字符串时,要注意使用三重引号的写法:

a = r"""This is a multiline string
with more than one line
in the source code."""
190

原始字符串字面量:

>>> r'abc\dev\t'
'abc\\dev\\t'

撰写回答