使用多个文件扩展名进行glob文件搜索

4

我正在使用glob列出家目录中所有的Python文件,使用以下代码:

import glob
files = glob.glob('/home/*.py')

我想要找到所有的.json文件以及.py文件,但是我没有找到一种方法可以在一行代码中扫描多个文件类型。

for file in glob.glob('/home/mohan/**/*.py', recursive=True):
    print(file)

2
我已将此关闭为 https://dev59.com/_G455IYBdhLWcg3wD_oB 的重复内容,但已重新打开。我认为在这种情况下应避免使用 glob,因为它会多次扫描目录。最好计算文件列表并检查模式。 - Jean-François Fabre
3
使用os.walk()并基于文件名进行筛选。glob.glob()不支持多个模式匹配。 - zwer
使用pathlib:https://dev59.com/_G455IYBdhLWcg3wD_oB#57054058 - Carson
1个回答

5
您可以使用os.walk函数,它可以查找子目录中的内容。
import os

for root, dirs, files in os.walk("path/to/directory"):
    for file in files:
        if file.endswith((".py", ".json")): # The arg can be a tuple of suffixes to look for
            print(os.path.join(root, file))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接