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