python获取文件下的所有文件、文件夹的大小

import os

allFilePath = []  # 存放所有的文件路径
dirSize = 0  # 文件夹大小  单位:字节


# 获取文件夹下的所有文件
def getAllFilePath(path):
    '''
    这个思路可以延伸做一个文件查找器:把所有文件、文件夹添加进数组  然后 in 数组 可以反馈搜索结果
    '''
    # 文件夹结尾判断有没有'/'
    if path[-1].__eq__('/'):
        pass
    else:
        path = path + '/'
    global allFilePath  # 全局变量
    fileList = os.listdir(path)  # 获得文件夹下面的所有内容
    for i in fileList:
        if os.path.isdir(path + i):  # 如果是文件夹  那就再次调用函数去递归
            getAllFilePath(path + i)  # 调用自己
        else:
            '''
            如果你只想获得某类文件  比如'.xml'结尾的文件  可以用正则表达式  demo如下
            '.' 匹配除换行符 \n 之外的任何单字符
            '+' 至少出现一次  
            '\.' 转义.  因为.在正则表达式中是关键字  所以需要转义 
            '$' 以什么结尾('^' 以什么开头)
            
            if re.match('.+\.xml$', i):
                allFilePath.append(path + i)
            '''
            allFilePath.append(path + i)  # 把文件的名字加入数组


# 获取文件夹的大小
def getDirSize(path):
    # 文件夹结尾判断有没有'/'
    if path[-1].__eq__('/'):
        pass
    else:
        path = path + '/'
    global dirSize  # 全局变量
    fileList = os.listdir(path)  # 获得文件夹下面的所有内容
    for i in fileList:
        if os.path.isdir(path + i):  # 如果是文件夹  那就再次调用函数去递归
            getDirSize(path + i)  # 调用自己
        else:
            size = os.path.getsize(path + i)  # 获取文件的大小
            dirSize = dirSize + size  # 叠加


if __name__ == '__main__':
    getAllFilePath('/Users/apple/Downloads/Video')
    print(allFilePath)
    getDirSize('/Users/apple/Downloads/Video')
    print(str(int(dirSize / 1048576)) + ' MB')

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值