写脚本实现:把电脑里面某个目录 所有超过5兆的文件 列出来;
方法一:首先想到的是用递归方法,依次判断os.listdir列出当前目录下文件或者文件夹,如果是文件,判断大小处理,是文件夹,递归查找。
#coding=utf-8 import os count=0 #参数path为绝对路径,size为文件限制单位M def findSizeFile(path,size): #全局变量,统计文件个数 global count if os.path.isfile(path): if os.path.getsize(path)>size*1024*1024: print u"文件:",os.path.basename(path).decode('gb2312'), u"大小:",os.path.getsize(path) , u"路径在:",os.path.dirname(path).decode('gb2312') count+=1 else: pass else: for p1 in os.listdir(path): findSizeFile(os.path.join(path,p1),size)
方法二:使用os.walk遍历目录,返回三元组(dirpath,dirnames,finenames),dirpath表示当前的路径,是一个字符串;dirnames是一个列表,表示当前路径下的子目录;filenames是一个列表,表示当前路径下包含的文件;
#coding=utf-8 import os count=0 #参数path为绝对路径,size为文件限制单位M def findSizeFile2(path,size): global count tuples=os.walk(path) for root,dirs,files in tuples: for file in files: if os.path.getsize(os.path.join(root,file))>size*1024*1024: count+=1 print u"文件:",os.path.join(root,file),u"大小:",os.path.getsize(os.path.join(root,file))