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:
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%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.
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