Datei in Python gehen

7

Also, ich habe eine funktionierende Lösung, aber es ist hässlich und scheint un-idiomatisch. Das Problem ist das:

Für einen Verzeichnisbaum, in dem jedes Verzeichnis eingerichtet ist:

  • 1 .xc Datei
  • mindestens 1 .x Datei
  • beliebig viele Verzeichnisse, die demselben Format folgen

und nichts anderes. Ich würde gerne, geben Sie den Root-Pfad und gehen Sie den Baum mit xc() auf den Inhalt von .xc fies, x auf den Inhalt zu .x Dateien, und dann die gleiche Sache zu den Inhalt der untergeordneten Ordner tun .

Tatsächlicher Code mit Erklärung würde geschätzt werden.

Danke!

    
Aaron Yodaiken 03.01.2011, 06:46
quelle

4 Antworten

17

Die Funktion os.walk durchläuft rekursiv eine Verzeichnisstruktur und gibt alle Datei- und Unterverzeichnisnamen zurück.

Sie müssen also nur die Erweiterungen .x und .xc aus den Dateinamen erkennen und Ihre Funktionen anwenden, wenn sie dies tun (ungeprüfter Code folgt):

%Vor%

Dies setzt voraus, dass x und xc für Dateinamen aufgerufen werden können; alternativ können Sie zuerst den Inhalt lesen und diesen als String an die Funktionen übergeben.

    
Andrew Jaffe 03.01.2011, 07:32
quelle
6
%Vor%     
albertov 03.01.2011 07:58
quelle
1

Scheint wie ein guter Ort, um Rekursion zu verwenden:

%Vor%

Ich hoffe, ich habe den Punkt Ihrer Frage nicht übersehen.

    
Andrew 03.01.2011 07:45
quelle
-2

Sie könnten ein Diktat verwenden, um eine Erweiterung zu speichern - & gt; Funktionszuordnung:

%Vor%

Dann erstellen Sie eine rekursive Funktion, die ein einzelnes Verzeichnis übernimmt, die Liste der Dateien in diesem Verzeichnis abruft und die Erweiterung jeder Datei festlegt:

%Vor%

Nun müssen Sie in dieser for-Schleife bestimmen, ob der Eintrag eine Datei oder ein Verzeichnis ist und die richtige Aktion ausführen:

%Vor%

Dies sollte für das funktionieren, was Sie tun möchten.

Haftungsausschluss - kann nicht versprechen, dass dies alles Python ist. Es ist meistens psuedocode mit Python-ähnlicher Syntax. Sie sollten in der Lage sein, die Idee zu bekommen, was zu tun ist, aber.

    
Matthew Iselin 03.01.2011 07:05
quelle

Tags und Links