如何获取Python中的第n个子目录?

2024-04-24 07:47:07 发布

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

假设我的文件夹中有一个名为xyz的文件,如下所示:

Directory
   |
   |+ Subdirectory_n
           |
           |+ Subdirectory_(n-1)
                   |
                   |+ Subdirectory_(n-2)
                           |
                           |+ Subdirectory_(n-3)
                                    ........
                                           |+ Subdirectory_1
                                                   |
                                                   |+ xyz

如果我想从文件中得到第n个子目录,如何获取它python? 例如,对于第二个子目录,我可以做如下操作:

^{pr2}$

第三次

import os
file = open('xyz.dat', 'w+')
print os.path.dirname(os.path.dirname(os.path.dirname(__file__)))

这个方法看起来有点笨拙。有没有更好的方法来实现这一点,这样我就可以在Python中将其推广到第n个子目录中?在


Tags: 文件path方法import文件夹osopendirectory
2条回答

您知道这需要一个聪明的阻塞递归解决方案,但可能类似于

n=5
while(n):
    path=os.path.dirname(path)
    n -=1

会很清楚并保存操作系统路径你只需要分裂就会失去本地化魔法操作系统路径.abspath(). 在

你可以尝试一下

^{pr2}$

但这并不能保证对所有符号链接都有效

您可以使用os.path.abspath()获得文件的绝对路径,它应该提供类似“C:\folder1\folder2\folder3\…”的内容。然后可以使用字符串操作来查找第n个目录。在

递归方法:

def nth_parent(path, n): return path if n <= 0 else os.path.dirname(nth_parent(path, n-1))

n是目录树上的级别数。在

相关问题 更多 >