通過Python計算一個資料夾大小

臨冬城城主發表於2018-09-01

在進行計算一個資料夾內容大小的時候,我們要考慮資料夾內都有什麼內容,可能都是一個一個的單檔案,也有可能都是子資料夾,或者二者都有,既然要計算整個資料夾的大小,我們當然要計算每一個檔案的大小以及每一個子資料夾下的每一個子檔案。計算每一個檔案的大小我們肯定都可以計算到,或者如果我們知道一個資料夾內有子資料夾的數量,一個個遍歷子資料夾的內容進行計算,但是如果我們不知道這個資料夾內到底有多少子資料夾呢?所以,根據我的思路,可以使用遞迴的方式進行計算每一個檔案及每一個字資料夾的大小,但有個弊端就是在python中遞迴有最大遞迴層數,說不定會有哪個變態套了N多層資料夾,這樣的話我們的程式可能會丟擲異常,所以我們還要做一定的異常處理,總之閒話少說,見程式碼吧。程式碼如下:

 

 1 import os
 2 total_size=0
 3 def file_size(path):
 4     global total_size
 5     path=os.path.abspath(path)
 6     file_list=os.listdir(path)
 7     for i in file_list:
 8         i_path = os.path.join(path, i)
 9         if os.path.isfile(i_path):
10             total_size += os.path.getsize(i_path)
11         else:
12             try:
13                 file_size(i_path)
14             except RecursionError:
15                 print(`遞迴操作時超出最大界限`)
16     return total_size
17 
18 
19 print(file_size(`D:\紅軍不怕遠征難\蒼老師精彩集錦`))

 

相關文章