Wie verhindere ich, dass Pythons os.walk über Bereitstellungspunkte läuft?

7

In Unix werden alle Festplatten als Pfade im Haupt-Dateisystem angezeigt, also würde os.walk('/') beispielsweise /media/cdrom sowie die primäre Festplatte durchqueren, was für einige Anwendungen nicht wünschenswert ist.

Wie bekomme ich eine os.walk , die auf einem einzelnen Gerät bleibt?

Verwandte:

joeforker 23.02.2009, 14:16
quelle

3 Antworten

15

Von os.walk docs:

  

Wenn topdown wahr ist, kann der Anrufer   Ändern Sie die Verzeichnisnamen in-Place   (vielleicht mit del oder slice   Zuweisung), und Walk () wird nur   rekrutiere in die Unterverzeichnisse, deren   Namen verbleiben in dirnames; das kann sein   verwendet, um die Suche zu löschen

Also sollte so etwas funktionieren:

%Vor%     
Constantin 23.02.2009, 14:39
quelle
3

Ich denke os.path.ismount könnte für Sie funktionieren. Ihr Code könnte etwa so aussehen:

%Vor%

Sie finden diese Antwort auch hilfreich beim Erstellen Ihrer Lösung.

>

* Danke für die Kommentare zum Filtern von dirs korrekt.

    
zweiterlinde 23.02.2009 14:40
quelle
1

os.walk() kann (soweit ich weiß) nicht feststellen, dass es ein anderes Laufwerk durchsucht. Sie müssen das selbst überprüfen.

Verwenden Sie os.stat() oder prüfen Sie, ob die Root-Variable von os.walk() nicht /media

ist     
Jason Coon 23.02.2009 14:31
quelle

Tags und Links