如何在 Python 中正确编写原始多行字符串?
How to correctly write a raw multiline string in Python?
- 我知道您可以通过几种方式创建多行字符串:
三引号
'''
This is a
multi-line
string.
'''
串联
('this is '
'a string')
转义
'This is'\
'a string'
我也知道在字符串前加上 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
' 被解释为制表符。
- 我知道您可以通过几种方式创建多行字符串:
三引号
'''
This is a
multi-line
string.
'''
串联
('this is '
'a string')
转义
'This is'\
'a string'
我也知道在字符串前加上
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'on\e'
r'\tw\o')
'on\e\tw\o'
否则第一部分被解释为原始字符串文字,但字符串的下一行不是,因此 '\t
' 被解释为制表符。