获取文件的父目录,直到某一点

时间:2012-05-10 14:03:06

标签: python

如果我有一个给定文件的路径,比如'C:\Folder\OtherFolder\AnotherFolder\file.txt',在python中有没有办法我可以获取file.txt的所有父目录到'OtherFolder'?路径的深度不是恒定的,所以我不能只迭代一定次数,但无论深度如何,我总是需要达到'OtherFolder'。我觉得这应该比我做的容易,但他们说周四是新的星期一。 :)

1 个答案:

答案 0 :(得分:7)

如果您使用的是Windows,请尝试以下操作:

import os
os.path.relpath('C:\Folder\OtherFolder\AnotherFolder\file.txt', 'C:\Folder\OtherFolder')

然后,您可以使用os.path.sep(在您的情况下为\)将其拆分:

rel_path.split(os.path.sep)

获取各个目录。

在Linux机器上,类似的调用返回你的意思:

os.path.relpath('/Folder/OtherFolder/AnotherFolder/file.txt', '/Folder/OtherFolder')
# returns 'AnotherFolder/file.txt'

rel_path.split(os.path.sep)
# returns ['AnotherFolder', 'file.txt']