如何获取文件的父目录?

时间:2015-07-20 20:24:53

标签: python python-2.7

给定文件路径c:\xxx\abc\xyz\fileName.jpg,如何获取文件的父文件夹?在这个例子中,我正在寻找xyz。要访问该文件的目录数可能会有所不同。

4 个答案:

答案 0 :(得分:11)

使用os.path.dirname获取目录路径。如果您只想要目录的名称,可以使用os.path.basename从中提取基本名称:

>>> path = r'c:\xxx\abc\xyz\fileName.jpg'
>>> import os
>>> os.path.dirname(path)
'c:\\xxx\\abc\\xyz'
>>> os.path.basename(os.path.dirname(path))
'xyz'

答案 1 :(得分:2)

使用python> = 3.4 pathlib是标准库的一部分,您可以使用.parent.name获取父名称:

from pathlib import Path
print(Path(path).parent.name)

要获得所有名称,请使用.parents:

print([p.name for p in Path(path).parents])

可以使用python2

pip install pathlib安装

答案 2 :(得分:0)

我使用以下apprach。

(a)通过os spearator分割文件的完整路径。

(b)获取结果数组并返回索引范围为[0:lastIndex-1]的元素 - 简而言之,从分割

中删除数组中的最后一个元素

(c)再次使用os分隔符将一个元素短的数组连接在一起。 应该适用于Windows和Linux。

这是一个例证的类函数。

# @param
#   absolutePathToFile an absolute path pointing to a file or directory
# @return
#       The path to the parent element of the path (e.g. if the absolutePathToFile represents a file, the result is its parent directory)
# if the path represent a directory, the result is its parent directory
def getParentDirectoryFromFile(self, absolutePathToFile):
    splitResutsFromZeroToNMinus1 = absolutePathToFile.split(os.sep)[:-1]
    return  os.sep.join(splitResutsFromZeroToNMinus1) 
pass

答案 3 :(得分:-1)

如果您的所有路径看起来与您提供的路径相同:

print path.split('\\')[-2]