首页 > 解决方案 > 查找目录中的所有头文件和所有没有外部模块的子目录

问题描述

我想在一个目录及其子目录中找到所有 .h 文件。但无需安装外部模块。我试过这个:

import os

def find_h_in_folder(path):
    for file in os.listdir(path):
        if file.endswith(".h"):
            print(file)
        elif os.path.isdir(file):
            find_h_in_folder(file)


find_h_in_folder("X:\folder")  

但它不起作用,因为我认为

for file in os.listdir(path):

只解析文件而不解析目录?所以我无法访问子目录,但我不知道谁也解析目录。

谢谢你们的帮助。

标签: pythonpython-3.x

解决方案


import os

root = '/some/directory'
pattern = ".h"

for path, subdirs, files in os.walk(root):
    for name in files:
        if name.endswith(pattern):
            print(os.path.join(path, name))

这将遍历所有子目录并查找.h文件


推荐阅读