Python子文件夹列表

2024-09-28 20:54:08 发布

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

我有一个主目录叫做Forfun。在这个目录中,有7-8个分支机构,分别是Test1Test2Test3等等。注意在Forfun中也有一些文件,它们不是分支机构。例如,在Forfun中有一个.txt文件,与Test1、Test2子目录处于同一级别。在

每个TestX子目录进一步分为3个子目录,即:输入结果参数。在

我希望能够列出一个特定文件夹的所有实例,比如inputs。在

所有的结果都应该在目录中找到。在

我试着像这样使用os.listdir

path = '/myfiles/Forfun'
folders = [f for f in os.listdir(path) if f.endswith('inputs')]
folders 

但这会给我一个空列表。希望我把问题解释清楚,谢谢你的帮助。在


Tags: 文件path目录txtos级别folderslistdir
2条回答

os.listdir()列出所提供目录中的所有文件和目录。正如您所经历的,它不执行递归。它保持在最初提供的目录级别上。在

为了递归地遍历目录树并遍历某个目录级别下的所有文件和目录,您应该使用Python的os.walk()

import os

def listdirs(suffix):
    for dirname, dirnames, filenames in os.walk('.'):
        for subdirname in dirnames:
            subdirpath = os.path.join(dirname, subdirname)
            if subdirpath.endswith(suffix):
                yield subdirpath


if __name__ == "__main__":
    for d in listdirs('inputs'):
        print d

我已经建立了和你建议的相同的目录结构。这是上面代码的输出:

^{pr2}$

要精确计算位Jan-Philip的解:

>>> import os
>>> for root, dirs, files in os.walk(path):
    if 'inputs' in dirs:
        print os.path.join(root, 'inputs')

它将列出inputs子文件夹的所有实例。在

相关问题 更多 >