2017-05-09 2 views
-1

Ich habe ein Verzeichnis wie folgt aufgebaut:Parse mehrere Unterordner in mehreren Listen angegeben

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

Um alle Dateien in allen Unterverzeichnissen zu analysieren, wo es mehrere Times mit mehreren Groups, würde ich nur verwenden:

import glob 

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

Allerdings, wenn ich nur bestimmte Times und Groups angeben möchte, kann ich dies von glob tun, oder kann ich es nur in der Schleife tun?

Beispiel Sammlungen:

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

Dies sollte nur Schleife durch diese Unterverzeichnisse:

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

Antwort

1

Versuchen Sie folgendes:

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

Ausgang:

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

Haben Sie eine Liste bei beabsichtigter Gruppen und bestimmt directories.While durch concat Looping die Gruppennummer oder Verzeichnisnummer als nach deiner Logik.

+0

Die Frage fragt, ob ich es über der Schleife Ebene tun können. –

+0

Sie können es auf beide Arten tun. Abhängig davon, wie Sie implementieren. – bigbounty

+0

Könnten Sie bitte zeigen, wie es anders geht, zusätzlich? Vielen Dank! –

Verwandte Themen