gpt4 book ai didi

python - 列出给定级别的所有子目录

转载 作者:行者123 更新时间:2023-11-28 19:56:55 25 4
gpt4 key购买 nike

我有这样的备份目录结构(所有目录都不为空):

/home/backups/mysql/
2012/
12/
15/
2013/
04/
29/
30/
05/
02/
03/
04/
05/

我想通过仅提供根目录路径来获取包含备份的所有目录的列表:

get_all_backup_paths('/home/backups/mysql', level=3) 

这应该返回:

/home/backups/mysql/2012/12/15
/home/backups/mysql/2013/04/29
/home/backups/mysql/2013/04/30
/home/backups/mysql/2013/05/02
/home/backups/mysql/2013/05/03
/home/backups/mysql/2013/05/04
/home/backups/mysql/2013/05/05

那些不应该出现在结果中:

/home/backups/mysql/2012
/home/backups/mysql/2012/12
/home/backups/mysql/2013
/home/backups/mysql/2013/04
/home/backups/mysql/2013/05

有什么方法可以将 os.listdir 降低 3 级,排除所有其他级别?如果是的话,我会感谢你的帮助。

def get_all_backup_paths(dir, level):
# ????

最佳答案

from glob import iglob

level3 = iglob('/home/backups/mysql/*/*/*')

(这将跳过名称以 . 开头的“隐藏”目录)

如果第 3 层可能有非目录,使用以下命令跳过它们:

from itertools import ifilter
import os.path

l3_dirs = ifilter(os.path.isdir, level3)

在 Python 3 中,使用 filter 而不是 ifilter

关于python - 列出给定级别的所有子目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16810686/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com