修复Python中的'../../'路径

21 投票
4 回答
14915 浏览
提问于 2025-04-16 09:55

在Python中,有没有简单的方法可以处理路径中的一些特殊符号,比如..?比如说,有没有什么函数可以把这个路径/../../test/../path转换成/path

4 个回答

9

如果你在使用 pathlib 这个模块,那么你需要用到的方法是 resolve

In [304]: print(p)
/group_workspaces/cems2/fiduceo/Users/gholl/logs/2016/08/10/srf_errorprop/../../../../../scratch/accidentally_deleted_shift_log

In [305]: print(p.resolve())
/group_workspaces/cems2/fiduceo/Users/gholl/scratch/accidentally_deleted_shift_log
9

你可以在 os.path 模块中使用 abspath

os.path.abspath(path)

这个函数会返回一个标准化的绝对路径。简单来说,就是把你给的路径转换成一个完整的、规范的路径。在大多数情况下,这个过程和先获取当前工作目录,然后把它和你提供的路径合并,再进行标准化处理是一样的。

34

你可以使用 os.path.realpath() 来获取标准的路径。想要得到一个规范的相对路径,可以使用 os.path.normpath()

撰写回答