【发布时间】:2019-11-14 08:57:03
【问题描述】:
我正在寻找一个独立于平台的解决方案。一切都可以在 Linux 上运行,因为 os.walk 已经返回 POSIX 路径。但是,如果我在 Windows 上,我可能会得到以下两条路径:
abspath = "/x/y/z" # given path for a remote server which uses POSIX paths
relpath = "a\\b\\c" # acquired from local file system via os.walk, so it uses slash or backslash depending on the platform
此示例的连接路径的期望结果是:
'/x/y/z/a/b/c'
但是,使用posixpath.join 自然会导致:
>>> posixpath.join(abspath, relpath)
'/x/y/z/a\\b\\c'
所以当我在 Windows 上并且有一个像 a\\b\\c 这样的相对路径时,我认为首先将其转换为 POSIX 相对路径 a/b/c 可能是有意义的,所以我可以在之后使用 posixpath.join?
但是,我不认为简单地用斜杠替换每个反斜杠是最佳做法 - 是吗?我找不到任何提供这种转换的函数。
【问题讨论】:
标签: python windows path relative-path absolute-path