如何在Python中获得父目录?

2024-04-26 14:10:54 发布

您现在位置:Python中文网/ 问答频道 /正文

有人能告诉我如何以跨平台的方式用Python获取路径的父目录吗。E、 g

C:\Program Files ---> C:\

以及

C:\ ---> C:\

如果目录没有父目录,则返回目录本身。这个问题可能看起来很简单,但我无法通过谷歌找到答案。


Tags: 答案路径目录方式跨平台filesprogram
3条回答

从Python 3.4更新

使用pathlib模块。

from pathlib import Path
path = Path("/here/your/path/file.txt")
print(path.parent)

旧答案

试试这个:

import os.path
print os.path.abspath(os.path.join(yourpath, os.pardir))

其中yourpath是要父级的路径。

使用os.path.dirname

>>> os.path.dirname(r'C:\Program Files')
'C:\\'
>>> os.path.dirname('C:\\')
'C:\\'
>>>

注意:os.path.dirname()根据路径中是否包含尾随斜杠,给出不同的结果。这可能是您想要的语义,也可能不是。Cf.@kender的答案使用os.path.join(yourpath, os.pardir)

在Python3.4+中

from pathlib import Path
Path('C:\Program Files').parent

pathlib documentation


附加信息

新的pathlib库集合并简化了路径和公共文件操作的使用。 下面是一些来自文档的示例。

在目录树中导航:

>>>
>>> p = Path('/etc')
>>> q = p / 'init.d' / 'reboot'
>>> q
PosixPath('/etc/init.d/reboot')
>>> q.resolve()
PosixPath('/etc/rc.d/init.d/halt')

查询路径属性:

>>>
>>> q.exists()
True
>>> q.is_dir()
False

相关问题 更多 >