减少通往最简单价值的道路?

Apo*_*llo 5 python

是否有 os.path 函数可以将路径简化为最简单的形式?例如,有没有办法减少/a/b/c/../..//a/

我已经尝试过os.path.abspath(url),但这也会前置我的主目录。例如,如果我想要www.google.com/a/index.html它返回/Users/myname/Documents/www.google.com/a/index.html

显然,一个可能的解决方案是从我创建的所有路径中删除/Users/myname/Documents/,但我觉得必须有更好的方法......

Mar*_*cin 6

你可以这样做:

print(os.path.abspath("/a/b/c/../../") + os.path.sep)
print(os.path.normpath("/a/b/c/../../") + os.path.sep)
# both print /a/
Run Code Online (Sandbox Code Playgroud)

如果您使用真实路径和 ​​python 3.4,您还可以使用 pathlib:

import pathlib
print(pathlib.Path("/tmp/tmux-1000/../").resolve() )
Run Code Online (Sandbox Code Playgroud)