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/
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