2016-08-02 31 views
0

Ich habe eine riesige Liste von Verzeichnissen. Mit /home als mein aktuelles Verzeichnis ist das höchste Level das Jahr. Es gibt sieben Jahre: 2010, 2011, 2012, 2013, 2014, 2015 und 2016.Öffnen und Lesen mehrerer Dateien in verschiedenen Verzeichnissen

Dann gibt es Unterverzeichnisse für jeden Monat, so zum Beispiel /home/2010/01. Es gibt natürlich zwölf Monate, jeweils mit 01, 02, 03, ..., 11, 12 bezeichnet.

Für jeden Monat gibt es jeden Tag: 01, 02, ..., mit so vielen Tage wie der Monat hat.

Für jeden Tag gibt es ein Unterverzeichnis immer genannt. Nach dem vorherigen Beispiel wären wir also in /home/2010/01/01/0700.

Und es gibt eine Datei in einem solchen Verzeichnis mit Daten (Tabellenform). Der Name der Datei gibt ihr Datum an, zum Beispiel: /home/2010/01/01/0700/pnw_20100101_TG.geo.

Ich möchte die Daten in diesen Dateien lesen und sie in einen Pandas-Datenrahmen laden, um Ausreißer zu filtern. Ich denke, ich weiß, wie man das macht, also lasst uns das auseinander nehmen, aber das Problem ist, dass ich die Dateien nicht lesen kann. Dies ist, was ich versucht:

import os 
for root, dirs, files in os.walk("/home"): 
    for name in files: 
     f = open(name, 'r') 
     f.close 

Aber ich erhalte die Fehlermeldung das Öffnen der Datei verknüpft: IOError: [Errno 2] No such file or directory: 'pnw_20100101_TG.geo'. Es scheint, dass es nicht die Datei nicht erkennt. Aber wenn ich zum Beispiel print(os.path.join(root, name)) mache, listet es alle Dateien korrekt auf.

Was empfehlen Sie zum Öffnen und Lesen der Dateien?

Vielen Dank.

Antwort

1

Sie öffnen den einfachen Dateinamen, aber in verschachtelten Ordnern wird er nicht gefunden. Join it mit dem root:

+1

Auch Sie könnten die Stammordner, ob sie Ihre Datumsspezifikation mit regulären Ausdrücken entsprechen filtern. –