首页 > 解决方案 > 在python中跨平台清理表示为字符串的文件路径

问题描述

我在一个具有 .csv 输入表的模型上工作,我的一位同事(在 Windows 上)可能会在这个 .csv 输入表中保存一个路径,例如 .csv 输入表A_Inputs\inputs\sets\modeledyears_set.csv

另一位同事(在 Mac 上)可能会在 .csv 输入表中保存路径,例如A_Inputs/inputs/sets/other_modeledyears_set.csv.

当我在我们的linux服务器上运行这个输入表时,windows输入的路径看起来像A_Inputs\\inputs\\sets\\modeledyears_set.csv,而mac输入的路径看起来像A_Inputs/inputs/sets/other_modeledyears_set.csv

通常,我可以将任一路径拆分为其组件并使用 or 保存到一个普遍可访问的路径os.path.join(windows_path.split('\\'))os.path.join(unix_path.split('/'))

但是,我想知道是否有一种方法可以在os.path.join()不执行这两个拆分的情况下获得结果。

是否有一些os函数可以清理表示为字符串的路径,而不管斜杠面向的方向如何?我试图避免基于用户操作系统的 if/else 逻辑。

标签: python

解决方案


您可以使用以下方法来同时支持UnixWindows

import os
os.path.join(path.split(os.pathsep))

推荐阅读