如何在目录中搜索满足条件的文件?

2024-04-29 18:41:28 发布

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

在目录中,我正在搜索满足特定条件的文件。我正在使用由other stackoverflow post提供的代码,但它将我送入无限循环,原因我看不出来

我遍历子目录中的目录。然后,我遍历子目录中的子目录,寻找满足条件的子目录。这是我的密码:

import os

rootdir ="/mnt/data/SHAVE_cases"

cases = []
for subdirs, dirs, files in os.walk(rootdir):
    for subdir in subdirs:
        print("1")
        # now we are in the file subdirectory. 
        # we need to see if these subsubdirectories start with "multi"
        for subdirs2, d, f in os.walk(rootdir + subdir):
            for s in subdirs2:
                if s.startswith("multi"):
                    cases.append(s)

下面是另一个遵循msi建议的代码

for pathname, subdirs, files in os.walk(rootdir):
    for subdir in subdirs:
        for path, sub, f in os.walk(rootdir + subdir):
            print(sub)

它仍然返回一个无限循环

 


Tags: 代码in目录forifosfilesstackoverflow
1条回答
网友
1楼 · 发布于 2024-04-29 18:41:28

我用这个question的答案解决了这个问题

要在子目录中搜索名称,我们使用find_dir()

import os

def find_dir(name, start):
    for root, dirs, files in os.walk(start):
        for d in dirs:
            if d == name:
                return os.path.abspath(os.path.join(root, d))

我完全改变了我的代码。这是它的一部分,因此您可以看到find_dir()正在运行

for key in dictionary:
    name = "goal_dir"
    
    if find_dir(name, key) != None:
        # perform analysis on the directory

相关问题 更多 >