Python:原始字符串太长,多行



我在Windows上使用python,我的项目文件夹的路径太长了。例如:

pathProject = r'C:UsersAccountOneDriveDocumentsProjects2016SharedProject-1AdministrativePhase-1Final'
os.chdir(pathProject)

我怎样才能以最优雅的方式将这很长的强分解成多条线?如果字符串不是原始字符串,我知道该怎么做。但是,如果我尝试这样的事情,我会收到一个错误:

pathProject = r'''C:UsersAccountOneDrive
                DocumentsProjects2016Shared
                Project-1AdministrativePhase-1
                Final'''

将此原始字符串分成多行的最优雅方法是什么?

您可以使用括号来触发自动行连续。 字符串将自动连接。

pathProject = (
    r"C:UsersAccountOneDrive"
    r"DocumentsProjects2016Shared"
    r"Project-1AdministrativePhase-1Final"
)

你差点就明白了!问题是原始字符串不能以反斜杠结尾。因此,这有效:

pathProject = r'''C:UsersAccountOneDrive
DocumentsProjects2016Shared
Project-1AdministrativePhase-1
Final'''

请注意,如果在三引号字符串中放入空格以缩进它,就像在您的示例中一样,字符串中会有您不需要的空格。如果您喜欢缩进,则可以按照 Brendan 答案中的建议使用带括号的自动行继续。同样,请确保行不以反斜杠结尾。

问题是结尾被解释为延续(以消除 LF 字符;Joooeey的回答是错误的(,并且还包括其他行开头的空格。作为单个原始字符串,这将起作用:

pathProject = r'''C:UsersAccountOneDrive
DocumentsProjects2016Shared
Project-1AdministrativePhase-1
Final'''

我想我更喜欢布伦丹的方式,但你可能想知道原始字符串如何(或不工作(适合你的情况。

在 Python 3 中,我们可以使用简单的来扩展任何类型的字符串,无论是 f 字符串还是 r 字符串。
在这里,我们将放在我们要继续的每一行之后。

pathProject = r'C:UsersAccountOneDrive' 
              r'DocumentsProjects2016Shared' 
              r'Project-1AdministrativePhase-1Final'

用于继续 Python 中的任何语句。 例如:

if some_condition_1 and some_condition_2 and some_condition_3 and some_condition_4:
    pass

可以写成

if some_condition_1 and some_condition_2 
   and some_condition_3 and some_condition_4:
    pass

最新更新