Ein Python-Walker, der Verzeichnisse ignorieren kann

8

Ich brauche einen Dateisystem-Walker, den ich anweisen könnte, das Traversieren zu ignorieren Verzeichnisse, die ich unberührt lassen möchte, einschließlich aller Unterverzeichnisse unter diesem Zweig. Die os.walk und os.path.walk tun es einfach nicht.

    
Johan Carlsson 29.05.2009, 08:52
quelle

4 Antworten

1

Also habe ich diese Home-Rollen-Walker-Funktion gemacht:

%Vor%     
Johan Carlsson 29.05.2009, 08:59
quelle
9

Tatsächlich kann os.walk genau das tun, was Sie wollen. Angenommen, ich habe eine Liste (vielleicht eine Menge) von Verzeichnissen, die ich in ignore ignorieren kann. Dann sollte das funktionieren:

%Vor%     
Rick Copeland 29.05.2009 10:06
quelle
7

Es ist möglich, das zweite Element der Rückgabewerte von os.walk zu ändern -Platz:

  

[...] Der Aufrufer kann die Verzeichnisnamen direkt ändern (vielleicht mit Hilfe der del- oder slice-Zuweisung), und walk () wird nur in die Unterverzeichnisse zurückgespielt, deren Namen in dirnamesame verbleiben; dies kann verwendet werden, um die Suche zu löschen [...]

%Vor%

Nun können Sie einfach ein Prädikat für Unterverzeichnisse übergeben:

%Vor%     
Torsten Marek 29.05.2009 10:05
quelle
2

Hier ist die beste und einfachste Lösung.

%Vor%

Denken Sie daran, wenn Sie den Ordnernamen aus Verzeichnissen entfernen, wird er nicht von os.walk untersucht.

hoffe es hilft

    
Ali 11.01.2012 23:55
quelle