溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python中遍歷文件夾并統計所有文件大小

發(fā)布時間:2021-07-10 15:23:18 來源:億速云 閱讀:740 作者:Leah 欄目:互聯網科技

python中遍歷文件夾并統計所有文件大小,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

遞歸解

遞歸解題的思路沒什么出奇的,代碼特別簡潔易懂。遍歷一個目錄,累計所有文件的大小,對于子目錄則調用自身遞歸統計子目錄。

需要注意的有兩點:

一、路徑書寫強烈建議用“/”,這種寫法在windows系統和linux系統通用。

二、文件與路徑拼接方法,經time測試用f字符串拼接方式比用os.path.join()方式拼接效率略高一些,而且書寫也簡潔一些。

import osdef getdir1(path):name_list = os.listdir(path)size = 0for i in name_list:j = f'{path}/{i}'  # 文件和路徑拼接用字符串+更直接更高效# j = os.path.join(path,i)if os.path.isdir(j):size += getdir1(j)else:size += os.path.getsize(j)return sizeprint(getdir1('D:/學習資料'))out:304372584432

循環(huán)解

循環(huán)解題的思路要注意以下兩點:

一、對列表的pop和append用法,這樣實際是將列表當成了堆棧使用,后進先出。

二、注意 while name_dir的寫法,這個是判斷name_dir列表是否為空,為空則結束循環(huán),不為空則循環(huán)。

def getdir2(path):size = 0name_dir = [path]while name_dir:name_list = os.listdir(ret := name_dir.pop())for i in name_list:j = f'{ret}/{i}'if os.path.isfile(j):size += os.path.getsize(j)else:name_dir.append(j)return sizeprint(getdir2('D:/學習資料'))out:304372584432

看完上述內容,你們掌握python中遍歷文件夾并統計所有文件大小的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI