2017-03-20 3 views
0

Ich versuche, die Anzahl aller Dateien in allen Verzeichnissen sowie die Anzahl der Dateien in einzelnen Verzeichnissen zu erhalten. Unten ist mein Code, um die Gesamtzahl der Dateien in allen Verzeichnissen zu erhalten, aber ich kann nicht herausfinden, wie ich die Anzahl in einem einzelnen Verzeichnis ermitteln kann. Kann jemand bitte helfen?Count Anzahl der Datei in jedem Unterverzeichnis python

N = 0 #Total count of number of files in all directories 
N_c = 0 #Number of documents in each class 

for dirpath, dirnames, filenames in os.walk(filePath): 
    for filename in [f for f in filenames]: 
     files = [os.path.join(dirpath, filename)] 
     for f in files: 
      N+=1 
+0

Verwenden Sie anstelle einer Variablen für die Zählung ein Wörterbuch, in dem Schlüssel Verzeichnisnamen sind. – DyZ

+0

Wie möchten Sie die Anzahl in jedem Verzeichnis aufzeichnen? Einfach ausdrucken? – tdelaney

+0

Ich benutze die Variable N_c, um die Anzahl der Dokumente in jedem Verzeichnis aufzuzeichnen – user7737327

Antwort

0

Sie arbeiten zu hart. Sie haben eine Liste von Dateinamen, nehmen Sie einfach ihre Länge. Ich weiß nicht, was Sie unter "Anzahl der Dateien in einzelnen Verzeichnissen" verstehen, also drucke ich sie nur aus.

N = 0 #Total count of number of files in all directories 
# what is this supposed to be? 
# N_c = 0 #Number of documents in each class 

for dirpath, dirnames, filenames in os.walk(filePath): 
    N += len(filenames) 
    print("Files in", dirpath, len(filenames) 

print("Total files", N) 
+0

ich brauche die Gesamtzahl der Dateien in allen Unterverzeichnissen, die ich in der variablen N und die Dateien in jedes einzelne Verzeichnis, für das am Speicherung I habe die Variable N_c genommen. Ich muss jedes Verzeichnis innerhalb des Hauptverzeichnisses scannen und dann die Dateianzahl nehmen und in N_c speichern – user7737327

+0

Wie speichern Sie alle Zählungen in einer Variablen? Wie ist es anders als die Summe? – tdelaney

+0

Angenommen, Sie hätten 3 Unterverzeichnisse mit 1, 2 und 3 Dateien. Die Summe wäre 6. Was wäre N_c? – tdelaney

0

In user7737327 Antwort: Sie müssen über nicht iterieren die dirpath und for d in dirpath

filenames eine Liste aller Dateien im aktuellen Verzeichnis enthalten. Wir können nur die Länge von Dateinamen nehmen, um die Anzahl der Dateien im aktuellen Verzeichnis zu erhalten.

N = 0 # total files 
for dirpath, dirnames, filenames in os.walk(file_path): 
    N_c = len(filenames) 
    N += N_c 
    print "Files in ", dirpath, N_c 
print "Total Files ",N 
Verwandte Themen