Search code examples
pythonpython-3.xglob

python glob apply wildcard to search only in certain directories


How can I apply wildcard to glob to only search for files in certain directories?

e.g. I have these folders AABC, AADE, and archive. I only want to run glob to get all the json files in AABC and AADE but not in the archive folder.

I've tried different variations of:

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

such as:

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

but it doesn't seem to work. Thanks for your help.


Solution

  • Here's your solution - glob.glob('aa*/*.json'))

    And here's a test:

    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']