Search code examples
pythonfiledirectorydirectory-structure

Parse multiple subdirectories specified in multiple lists


I have a directory structured as below:

|-- Transcripts
|   |-- [Time_n]
|   |   |-- [Group_n]
|   |   |   |-- file_1.txt
|   |   |   |-- ...
|   |   |   |-- file_n_n.txt
|   |...
|

To parse every file in all subdirectories, where there are multiple Times with multiple Groups, I would just use:

import glob

path = 'Transcripts/***/**/*.txt'
files = glob.glob(path, recursive=True)
for file in files:
    print(file)

However, if I want to specify only certain Times and Groups, can I do this from glob, or can I only do it in the loop below?

Example collections:

times = ['Time1', 'Time3']
groups = ['Group2', 'Group4']

This should only loop through these subdirectories:

/Transcripts/Time1/Group2/
/Transcripts/Time1/Group4/
/Transcripts/Time3/Group2/
/Transcripts/Time3/Group4/

Solution

  • Try this:

    import glob
    path = './Transcripts/Time[1,3]/Group[2,4]/*.txt'
    files = glob.glob(path)
    for file in files:
        print(file)
    

    Output:

    ./Transcripts\Time1\Group2\file_1.txt
    ./Transcripts\Time1\Group2\file_2.txt
    ./Transcripts\Time1\Group4\file_1.txt
    ./Transcripts\Time1\Group4\file_2.txt
    ./Transcripts\Time3\Group2\file_1.txt
    ./Transcripts\Time3\Group2\file_2.txt
    ./Transcripts\Time3\Group4\file_1.txt
    ./Transcripts\Time3\Group4\file_2.txt