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

Jos*_*h D 7 python string multiline rawstring

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

三重行情

'''
This is a 
multi-line
string.
'''
Run Code Online (Sandbox Code Playgroud)

串联

('this is '
'a string')
Run Code Online (Sandbox Code Playgroud)

逃跑

'This is'\
'a string'
Run Code Online (Sandbox Code Playgroud)
  1. 我也知道在字符串前面加上前缀r会使它成为原始字符串,对文件路径很有用。

    r'C:\Path\To\File'
    
    Run Code Online (Sandbox Code Playgroud)

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

这有效:

In [1]: (r'a\b'
   ...: '\c\d')
Out[1]: 'a\\b\\c\\d'
Run Code Online (Sandbox Code Playgroud)

但出于某种原因,这不会:

In [4]:  (r'on\e'
   ...: '\tw\o')
Out[4]: 'on\\e\tw\\o'
Run Code Online (Sandbox Code Playgroud)

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

Cor*_*mer 8

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

>>> (r'on\e'
     r'\tw\o')
'on\\e\\tw\\o'
Run Code Online (Sandbox Code Playgroud)

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