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