Seite 1 von 1

Verzeichnisliste erhalten

Verfasst: Donnerstag 9. September 2010, 10:49
von toom
Ich arbeite zwar recht gerne, aber doch auch sehr selten mit Python. Ich würde gerne Dateien in verschiedenen Verzeichnissen einlesen. Das Problem ist, dass sich in dem Unterordner ca. 10000 Unterverzeichnisse befinden. Die kann ich natürlich nicht hardcoden :wink:. Die Verzeichnisstruktur sieht ungefähr so aus

./MeinSkript.py
./statistics
./statistics/dictionary1
./statistics/dictionary2
...
./statistics/dictionaryN

Wobei "./" das aktuelle Verzeichnis bezeichnet (Unixnotation). In jedem Unterverzeichnis ( zB dictionary953) befindet sich eine Textdatei. Ich möchte nun jede Textdatei in den Unterverzeichnissen nacheinander öffnen, deren Inhalt einlesen und dann wieder schließen. Hier mal ein bisschen Pseudocode

1. Öffne Verzeichnis "statistics"
2. List dictionaries = gebeMirEineListeMitAllenVerzeichnienImAktuellenVerzeichnis()
3. for dict in dictionaries: Öffne Textdatei "statistics/dict/textdatei.txt"
4. Textdatei abarbeiten und schließen

Wie kann ich Punkt 1 und 2 mit Python realisieren?

Re: Verzeichnisliste erhalten

Verfasst: Donnerstag 9. September 2010, 11:02
von cofi
Schau dir mal das glob-Modul an.

Re: Verzeichnisliste erhalten

Verfasst: Donnerstag 9. September 2010, 11:12
von Hyperion
Schau Dir mal die Doku zu os.walk() und dem glob-Modul an.

Dazu ggf. diesen Thread hier:
http://www.python-forum.de/viewtopic.ph ... r+rekursiv

Damit solltest Du das einfach realisieren können.

Schritt 1 ist dabei absolut überlüssig. Prinzipiell kann man das mit os.listdirs() realisieren.

Re: Verzeichnisliste erhalten

Verfasst: Donnerstag 9. September 2010, 12:45
von toom
Besten Dank für die Antworten. Ich habe es mit glob gelöst.

Re: Verzeichnisliste erhalten

Verfasst: Donnerstag 9. September 2010, 12:56
von Hyperion
toom hat geschrieben:Besten Dank für die Antworten. Ich habe es mit glob gelöst.
Damit hast Du aber keinen rekursiven Durchlauf aller Unterverzeichnisse...