You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中优雅换行长原始字符串?含pathlib路径场景

更Pythonic的长原始字符串(Windows路径)换行方案

好问题!处理长Windows路径的时候,确实容易碰到原始字符串换行的麻烦——三引号会引入多余的换行符,手动加续行符又显得繁琐。这里有两个更优雅的方案,完全符合Python风格:

方案1:利用Python的字符串自动拼接特性

Python会自动将相邻的字符串字面量(包括原始字符串)合并,而且不会引入任何额外字符。你只需要把长路径拆分成多个r''包裹的片段,用圆括号包裹来实现换行对齐,连续行符都不需要:

from pathlib import Path
my_long_path = Path(
    r'C:\some\very\long'
    r'\path\that\goes\on\forever'
    r'\and\on\even\more'
)

这种写法清晰直观,每个片段都是独立的原始字符串,既避免了转义问题,又保证了最终路径没有多余的换行符。如果不想用圆括号,直接换行对齐也可以:

my_long_path = Path(r'C:\some\very\long'
                    r'\path\that\goes\on\forever')

方案2:用pathlib的/运算符拼接路径(更推荐)

既然你已经在使用pathlib,那完全可以利用它的核心特性——用/运算符来拼接路径片段。这不仅解决了换行问题,还更符合跨平台路径的设计理念:

from pathlib import Path
my_long_path = (
    Path(r'C:\some')
    / 'very'
    / 'long'
    / 'path'
    / 'that'
    / 'goes'
    / 'on'
    / 'forever'
)

这种方式把每个路径段单独拆分,可读性极强,而且pathlib会自动处理不同系统的路径分隔符,比直接写长原始字符串更鲁棒。

为什么三引号原始字符串不行?

正如你发现的,r'''some\very\long\path'''这种写法会保留换行符,因为三引号字符串会原样保留其中的换行和空白,所以确实不适合用来拼接无换行的长路径。


内容的提问来源于stack exchange,提问作者Dschoni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:22:54