【问题标题】:Retrieve files from only the third level of directory仅从第三级目录中检索文件
【发布时间】:2019-05-21 03:26:25
【问题描述】:

我有一个目录,格式如下:

A/ : 根

B/:一级子目录,包含以下目录

01/  02/ 03/ 04/ 05/ 06/ 07/

C/: B/ (01/ or 02/ or 03/ or 04/ or 05/ or 06/ or 07/) 的每个子目录的第三层 最多包含三个子目录

001/002/003/

我想检索文件在 001/ 002/ 003/ :

我的树如下: A/B/C/01/001/files.txt

我怎样才能访问它?

我尝试了什么?

    for root, dirs,files in sorted(os.walk(path+ "/", topdown=False)):  # root

        for lab in dirs:  # level 1 
            new_path=path+category+'/'+lab+'/'
            for ro,dir,f in os.walk(new_path): #level 2
                for dr in dir:
                    for ri, dir, file in os.walk(new_path+'/'+dr): #level 3 
                        os.chdir(new_path+'/'+dr)
                        text_file=glob.glob("*.txt")

有没有什么有效的方法可以避免 5 个嵌套的 for 循环?

【问题讨论】:

标签: python directory subdirectory python-os


【解决方案1】:

当我尝试时,仅此一项对我有用

import os

path = r'C:\root'

for root, dirs,files in os.walk(path):  # root
    for f in files:
        print(f)

这会输出级别 3 上的所有文件。本质上是包含在级别 B 上 7 个目录中的每个目录中的三个子目录 001/ 002/ 003/ 中的文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-20
    相关资源
    最近更新 更多