python glob 应用通配符仅在特定目录中搜​​索

python glob apply wildcard to search only in certain directories

如何将通配符应用于 glob 以仅搜索特定目录中的文件?

例如我有这些文件夹 AABC、AADE 和存档。我只想 运行 glob 获取 AABC 和 AADE 中的所有 json 文件,但不在存档文件夹中。

我试过以下的不同变体:

json_files = glob.glob("**.json", recursive=True)

如:

json_files = glob.glob("AA**/**.json", recursive=True)

不过好像不行。感谢您的帮助。

如果您只有两个目录要搜索 您可以分别在每个目录上使用 glob 并连接结果:

json_files = glob.glob("AABC/*.json", recursive=True) + glob.glob("AADE/*.json", recursive=True)

这是您的解决方案 - glob.glob('aa*/*.json'))

这是一个测试:

vladimir@vladimir-hp /tmp $ mkdir aab
vladimir@vladimir-hp /tmp $ mkdir aac
vladimir@vladimir-hp /tmp $ mkdir a
vladimir@vladimir-hp /tmp $ touch aab/1.json
vladimir@vladimir-hp /tmp $ touch aac/2.json
vladimir@vladimir-hp /tmp $ touch a/3.json
vladimir@vladimir-hp /tmp $ python3 -c "import glob; print(glob.glob('aa*/*.json'))"
>>> ['aac/2.json', 'aab/1.json']