2017-05-09 53 views
-1

我有一个目录结构如下:在多个列表中指定解析多个子目录

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

要分析所有子目录中,那里有多个GroupsTimes每一个文件,我只想用:

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/ 

回答

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 
0

有意基团的列表,并旨在通过directories.While循环的concat的组号或号码簿号码作为根据你的逻辑。

+0

的问题问,如果我能做到这一点的循环水平。 –

+0

您可以通过两种方式来完成。取决于您的实施方式。 – bigbounty

+0

您能否以另一种方式展示如何去做?谢谢! –