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

How to correctly write a raw multiline string in 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" 只有一个反斜杠?

我认为您可能还需要像在 r'on\e'

中那样在第二行加上前缀 r 来使它成为原始字符串

每个字符串文字都需要一个 r 前缀

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

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