2013-06-04 47 views

Odpowiedz

3

Wystarczy dodać oświadczenie elif że dba o katalogach:

def fileCount(folder): 
    "count the number of files in a directory" 

    count = 0 

    for filename in os.listdir(folder): 
     path = os.path.join(folder, filename) 

     if os.path.isfile(path): 
      count += 1 
     elif os.path.isfolder(path): 
      count += fileCount(path) 

    return count 
+1

@OmarSolis Co nie jest rekurencyjny na ten temat? – squiguy

+0

@OmarSolis: Co to jest rekursja? – Blender

34

One - liner

import os 
cpt = sum([len(files) for r, d, files in os.walk("G:\CS\PYTHONPROJECTS")]) 
+0

Czy możesz wyjaśnić, dlaczego potrzebujesz funkcji sumy? Dlaczego len (pliki) nie byłby wystarczający? –

+4

@GWarner Istnieje wiele zestawów plików (z każdego podkatalogu), które są dostarczane przez os.walk. Musisz zsumować długość każdego zestawu, aby uzyskać liczbę plików. Jeśli użyjesz len (pliki), otrzymasz listę, w której każdy element jest liczbą plików w powiązanym podkatalogu. –

Powiązane problemy