遍历文件系统目录结构

Traversing a file-system directory structure

我正在尝试对目录中的某些文件进行一些处理。我尝试使用的基本结构是文件夹 -> 子文件夹 -> 我需要访问的文件。 data 包含数百个子文件夹,我试图访问每个子文件夹,找到其中以 'params' 结尾的文件,现在只需阅读内容。我的代码如下:

import os
for sub_folder in os.scandir('data'):
    os.chdir(sub_folder)
    for file in os.scandir(sub_folder):
        print(file.name)
        if(file.name.endswith('params')):
            with open(file.name, 'r') as f:
                data = f.read()

我收到 FileNotFoundError,它告诉我路径 'data\\run.0' 不存在。我已经确认 'run.0'data 中的第一个子文件夹,所以我感到困惑的是路径实际上并不存在。

我知道当我尝试更改目录时发生错误,所以我怀疑我遍历 data 文件夹的方式不是正确的方式。我知道 os.scandir 给出了一个 DirEntry 对象,这就是变量 sub_folder 的意思,但这不是更改目录功能的有效输入吗?

您可以使用 os.walk,但我更喜欢使用 glob:参见 How to use Glob() function to find files recursively in Python?