如何一次性拼接多个文件路径,避免os.path.join嵌套冗余写法?
多路径拼接简化实现
os.path.join 本身就支持接收任意数量的路径片段参数,完全不需要嵌套调用,你只要把所有需要拼接的路径段按层级顺序依次作为参数传入即可。
你之前写的嵌套写法:
os.path.join(os.path.join("assets", "imgs"), "something.png")
可以直接简化为:
os.path.join("assets", "imgs", "something.png")
几个使用注意点:
- 方法会自动适配当前操作系统的路径分隔符:Windows环境自动使用
\作为分隔符,Linux、macOS等类Unix环境自动使用/作为分隔符,不需要手动处理跨系统分隔符差异 - 如果传入的参数中包含绝对路径(比如Windows下带盘符的
C:/user、类Unix下以/开头的/home/xxx),那么这个绝对路径之前的所有拼接片段都会被丢弃,会从这个绝对路径位置开始重新拼接,示例:
# 最终输出为 /home/doc/readme.md,前面的"assets"片段会被忽略 os.path.join("assets", "/home/doc", "readme.md")
内容的提问来源于stack exchange,提问作者NaniNoni
相关产品推荐
相关产品推荐

