解析多个列表中指定的多个子目录

时间:2017-05-09 01:38:33

标签: python file directory directory-structure

我的目录结构如下:

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

要解析所有子目录中的每个文件,其中有多个Times多个Groups,我只会使用:

import glob

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

但是,如果我只想指定某些TimesGroups,我可以从glob执行此操作,还是只能在下面的循环中执行此操作?

示例集合:

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

这应该只遍历这些子目录:

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

2 个答案:

答案 0 :(得分:1)

试试这个:

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

输出:

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

答案 1 :(得分:0)

列出目标组和目标目录。然后根据您的逻辑循环连接组号或目录号。