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

时间:2017-09-01 15:23:56

标签: python string multiline rawstring

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

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

    级联

    ('this is '
    'a string')
    

    逃逸

    'This is'\
    'a string'
    
    1. 我也知道在字符串前加r前缀会使它成为一个原始字符串,对文件路径很有用。

      r'C:\Path\To\File'
      
    2. 但是,我有一个长文件路径,它跨越多行并且需要是一个原始字符串。我该怎么做?

      这有效:

      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"只有一个反斜杠?

2 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:0)

我认为您可能还需要将第二行设为原始字符串,并在r'on\e'

中为其添加r作为前缀