一尘不染

如何在Python中正确编写原始多行字符串?

python

  1. 我知道您可以通过以下几种方式创建多行字符串:

三引号

'''
This is a 
multi-line
string.
'''

级联

('this is '
'a string')

转义

'This is'\
'a string'
  1. 我也知道,在字符串前面加上前缀r将使它成为原始字符串,对于文件路径很有用。
    r'C:\Path\To\File'
    

但是,我有一个长文件路径,该文件路径既跨越多行,又需要是原始字符串。我该怎么做呢?

这有效:

In [1]: (r'a\b'
   ...: '\c\d')
Out[1]: 'a\\b\\c\\d'

但是由于某些原因,这不是:

In [4]:  (r'on\e'
   ...: '\tw\o')
Out[4]: 'on\\e\tw\\o'

为什么"t"只有一个反斜杠?


阅读 446

收藏
2021-01-20

共1个答案

一尘不染

您需要r在每个字符串文字上加一个前缀

>>> (r'on\e'
     r'\tw\o')
'on\\e\\tw\\o'

否则,第一部分将被解释为原始字符串文字,但字符串的下一行则不会,因此'\t‘被解释为制表符。

2021-01-20