删除使用os.join构造的路径名中不必要的目录

时间:2014-06-15 08:12:48

标签: python

在Python中打印用os.join构造的目录路径时,我得到这样的结果:

rep/rep2/../rep1

有没有办法只获得这个:

rep/rep1

2 个答案:

答案 0 :(得分:4)

是的,os.path.normpath()会折叠冗余分隔符和向上引用。

os.path.realpath()将路径转换为规范路径,其中包括删除“..”组件,但它也会消除符号链接。

请参阅https://docs.python.org/2/library/os.path.html

答案 1 :(得分:1)

使用os.path.relpath

>>> import os
>>> os.path.relpath("rep/rep2/../rep1", start="")
'rep/rep1'

os.path.normpath

>>> import os
>>> os.path.normpath("rep/rep2/../rep1")
'rep/rep1'