2013-06-04 67 views

Trả lời

3

Chỉ cần thêm một tuyên bố elif rằng sẽ chăm sóc của các thư mục:

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 không là gì đệ quy về điều này? – squiguy

+0

@OmarSolis: Đệ quy là gì? – Blender

34

Một - liner

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

Bạn có thể giải thích tại sao bạn cần hàm tổng? Tại sao không len (tập tin) là đủ? –

+4

@GWarner Có nhiều bộ tệp (từ mỗi thư mục con) được tạo bởi os.walk. Bạn phải tính tổng chiều dài của mỗi bộ để nhận được số lượng tệp. Nếu bạn sử dụng len (file) thì bạn sẽ nhận được một danh sách trong đó mỗi phần tử là số lượng tệp trong thư mục con được liên kết của nó. –

Các vấn đề liên quan