python遍历文件夹下所有文件大小_python遍历文件夹——两种遍历本地文件记录文件夹个数、文件数及文件大小的方法...
這兩個函數的功能:得到給定目錄的文件夾個數、文件數,以及文件大小
walkFolders函數沒有用到os.walk函數,是自己遞歸調用的;walkfunc函數用到了os.walk函數,方便了很多。
import os
from os.path import join,getsize
#沒有使用os.walk函數
def walkFolders(folder):
folderscount=0
filescount=0
size=0
folders=os.listdir(folder) #os.listdir(dirname):列出dirname下的目錄和文件
for item in folders:
path=os.path.join(folder,item) #os.path.join(path,name):連接目錄與文件名或目錄
if os.path.isdir(path): #os.path.isdir(name):判斷name是不是一個目錄,name不是目錄就返回false
folderscount+=walkFolders(path)[0]+1
filescount+=walkFolders(path)[1]
size+=walkFolders(path)[2]
elif os.path.isfile(path): #os.path.isfile(name):判斷name是不是一個文件,不存在name也返回false
filescount+=1
size+=getsize(path) #os.path.getsize(filename):獲取filename的文件大小, 單位為字節
return folderscount,filescount,size
#使用了os.walk函數
def walkfunc(folder):
folderscount=0
filescount=0
size=0
#walk(top,topdown=True,οnerrοr=None)
#top表示需要遍歷的目錄樹的路徑
#topdown的默認值是"True",表示首先返回目錄樹下的文件,然后在遍歷目錄樹的子目錄
#參數onerror的默認值是"None",表示忽略文件遍歷時產生的錯誤.如果不為空,則提供一個自定義函數提示錯誤信息后繼續遍歷或拋出異常中止遍歷
for root,dirs,files in os.walk(folder): #返回一個三元組:當前遍歷的路徑名,當前遍歷路徑下的目錄列表,當前遍歷路徑下的文件列表
folderscount+=len(dirs)
filescount+=len(files)
size+=sum([getsize(join(root,name)) for name in files])
return folderscount,filescount,size
if __name__ == '__main__':
folder=os.getcwd() #os.getcwd():獲得當前工作目錄
folderscount,filescount,size=walkFolders(folder)
print folder,folderscount,filescount,size
folderscount,filescount,size=walkfunc(folder)
print folder,folderscount,filescount,size
總結
以上是生活随笔為你收集整理的python遍历文件夹下所有文件大小_python遍历文件夹——两种遍历本地文件记录文件夹个数、文件数及文件大小的方法...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql uuid 性能_mysql
- 下一篇: mysql 平均日营业额_一条SQL语句