python文件操作练习题

写脚本实现:把电脑里面某个目录 所有超过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))

 

posted @ 2019-03-04 13:21  我有一个桃花源  阅读(2915)  评论(0编辑  收藏  举报