Ich möchte ein Programm erstellen, das einige grundlegende Code verwendet, um durch einen Ordner zu lesen und mir sagen, wie viele Dateien in dem Ordner sind. Hier ist, wie ich das zur Zeit:Python os.walk zu bestimmten Ebene
import os
folders = ['Y:\\path1', 'Y:\\path2', 'Y:\\path3']
for stuff in folders:
for root, dirs, files in os.walk(stuff, topdown=True):
print("there are", len(files), "files in", root)
Dies funktioniert gut, bis es mehrere Ordner im „main“ -Ordner sind, da es eine lange, junky Liste der Dateien aufgrund der schlechten Ordner/Dateiverwaltung zurückkehren kann. Ich möchte also höchstens auf die zweite Ebene gehen. Beispiel:
Main Folder
---file_i_want
---file_i_want
---Sub_Folder
------file_i_want <--*
------file_i want <--*
------Sub_Folder_2
---------file_i_dont_want
---------file_i_dont_want
Ich weiß, wie man mit einem break
nur der ersten Ebene zu gehen und mit del dirs[:]
genommen von this post und also this post.
import os
import pandas as pd
folders = ['Y:\\path1', 'Y:\\path2', 'Y:\\path3']
for stuff in folders:
for root, dirs, files in os.walk(stuff, topdown=True):
print("there are", len(files), "files in", root)
del dirs[:] # or a break here. does the same thing.
Aber egal, meine Suche kann ich nicht herausfinden, wie man zwei Schichten tief geht. Ich verstehe einfach nicht die anderen Beiträge oder etwas anderes? Ich dachte etwas wie del dirs[:2]
, aber ohne Erfolg. Kann mich jemand führen oder mir erklären, wie ich das erreichen kann?
'dirs' sind alle Verzeichnisse im aktuellen Verzeichnis, es ist nicht die Tiefe des Ordnerbaums. –
@PeterWood, ah! Das macht Sinn. So, jetzt verstehe ich, warum 'del dirs [: 2]' ist dumm ... – MattR
Es sieht aus wie Sie Python 3 verwenden. Ist das korrekt? –