Ich verwende Python 3.5, um Daten in CSV-Dateien zu analysieren. Diese Dateien werden in einem "feigen" Verzeichnis enthalten sind, die in einem Fall Verzeichnis enthalten ist, die in einer Gesamtdatenverzeichnis enthalten ist, zB:Python - Navigieren durch Unterverzeichnisse, die Namenskriterien erfüllen
/strm1/serino/DATA/06052009/Feigen
Oder allgemeiner:
/strm1/serino/DATA/case_date_in_MMDDYYYY/Feigen
Das Verzeichnis, in dem ich anfange, ist '/ strm1/serino/DATA /' und jedes Unterverzeichnis ist der Monat, der Tag und das Jahr eines Falles, mit dem ich arbeite. Jedes Unterverzeichnis enthält ein anderes Unterverzeichnis mit dem Namen "figs". Dies ist der Speicherort der CSV-Datei jedes einzelnen Falls. Um genau zu sein:
/strm1/serino/DATA/case_date_in_MMDDYYYY/Feigen/case_date_in_MMDDYYYY .csv
So würde Ich mag in meinem DATA-Verzeichnis starten und gehen durch seine Unterverzeichnisse um diejenigen zu finden, die die MMDDYYYY-Namensgebung haben. Einige der Fallverzeichnisse können jedoch am Ende mit einer Zustandsabkürzung benannt werden, z. B .: '06052009_TX'. Anstatt die MMDDYYYY-Namensgebung exakt zu treffen, könnte es daher einfach sein, zu überprüfen, ob der Verzeichnisname eine Zahl zwischen 1 und 9 enthält.
Sobald ich im ersten Unterverzeichnis (dem Fallverzeichnis) bin, möchte ich verschieben in das Unterverzeichnis "figs". Dort möchte ich auf die CSV-Datei mit der gleichen Namenskonvention zugreifen wie das erste Unterverzeichnis (das Case-Verzeichnis). Ich werde vorhandene Arrays mit den Daten füllen, die in jeder CSV-Datei enthalten sind.
Grundsätzlich betrifft meine Frage das Navigieren durch mehrere Unterverzeichnisse, die einer bestimmten Namenskonvention entsprechen und schließlich auf die Datendatei am "Ende" zugreifen. Ich spielte naiv mit glob, fnmatch, os.listdir und os.walk, aber ich konnte nichts erreichen, was so nah an der Arbeit war, dass ich es für hilfreich halte, sie einzubeziehen. Ich bin mit diesen Modulen nicht sehr vertraut. Was kann ich schließen ist, was ich für gehe:
for dirs in data_dir that contain a number:
go into this directory
go into 'figs' directory
read data from the csv file whose name matches its case directory name (or whose name format matches the case directory name format)
ich auf ähnliche Fragen gekommen bin, aber ich habe nicht in der Lage gewesen, ihre Antworten in der Art und Weise anzuwenden, die Ich mag würde, vor allem mit verschachtelten Verzeichnissen. Ich schätze die Hilfe sehr, und lassen Sie mich wissen, wenn ich etwas klären muss.
Das ist genau das, was ich brauchte Hilfe, und es zu sehen, macht Sinn. Ich wusste nicht, dass du 'datetime.strptime' auf diese Weise verwenden kannst. Ich war mir auch nicht bewusst, "versuchen". Vielen Dank, und ich entschuldige mich, dass es dauerte eine Weile, um zu antworten. – ChelleS