在一个目录中,我正在搜索满足特定条件的文件。我使用的是另一篇stackoverflow帖子提供的代码,但它让我陷入了一个无限循环,原因是我看不见。
我遍历子目录中的目录。然后,我遍历子目录中的子目录,寻找满足条件的子目录。这是我的代码:
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)
它仍然返回一个无限循环。
我用这个问题的答案解决了这个问题。
要在子目录中搜索名称,我们使用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