os.walk爬过文件夹结构

Mat*_*itt 3 python os.walk

我有一些代码可以查看单个文件夹并提取文件.但现在文件夹结构已经改变,我需要遍历搜索匹配文件的文件夹.

旧代码看起来像什么

GSB_FOLDER = r'D:\Games\Gratuitous Space Battles Beta' 

def get_module_data():
    module_folder = os.path.join(GSB_FOLDER, 'data', 'modules')

    filenames = [os.path.join(module_folder, f) for f in
                  os.listdir(module_folder)]

    data = [parse_file(f) for f in filenames]

    return data
Run Code Online (Sandbox Code Playgroud)

但现在文件夹结构已经改变为这样

  • GSB_FOLDER \数据\模块
    • \ folder1中\数据\模块
    • \文件夹2 \数据\模块
    • \ folder3 \数据\模块

其中folder1,2或3可以是任何文本字符串

我如何重写上面的代码来做这个...我被告知os.walk但我只是在学习Python ...所以任何帮助表示赞赏

Anu*_*yal 6

你刚刚调用没有太多变化os.walk,它会以递归方式通过目录并返回文件,例如

for root, dirs, files in os.walk('/tmp'):
    if os.path.basename(root) != 'modules':
        continue
    data = [parse_file(os.path.join(root,f)) for f in files]
Run Code Online (Sandbox Code Playgroud)

在这里,我只检查名为'modules'的文件夹中的文件,您可以更改该检查以执行其他操作,例如在某处具有模块的路径 root.find('/modules') >= 0