您好,登錄后才能下訂單哦!
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)解題的思路要注意以下兩點:
一、對列表的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è)資訊頻道,感謝各位的閱讀!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。