我需要一个跨平台的解决方案。在Linux上,一切都可以正常工作,因为
然而,自然地使用
当我在Windows上使用相对路径时,比如a\\b\\c,我认为先将其转换为POSIX相对路径a/b/c可能是有意义的,这样我就能够之后使用posixpath.join。不过,我不认为仅仅用斜杠替换每个反斜杠是最佳实践-难道是吗?我找不到提供这种转换的函数。"最初的回答"
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。不过,我不认为仅仅用斜杠替换每个反斜杠是最佳实践-难道是吗?我找不到提供这种转换的函数。"最初的回答"
\
作为分隔符。在POSIX系统上,应该将其转换为/
分隔符。 - abdusco