用到知识,os模块,递归调用

根据文件夹路径计算文件夹大小,路径也可以是文件

方式一,自己递归

import ossize = 0def get_dir_size(path):"""递归调用,统计文件大小:param path: 文件夹路径:return: 文件字节"""global size# 列表显示出文件夹下的所有子文件及子文件夹dir_list = os.listdir(path)for file in dir_list:# 遍历出是不包含前缀的,所以需要拼接完整路径f = os.path.join(path, file)# 判断遍历出来的是否为文件夹,是文件夹继续递归调用if os.path.isdir(f):get_dir_size(f)else:size += os.path.getsize(f)return size# 有一定功力的人可以用如下三元表达式# s= (get_dir_size(os.path.join(path, file)) if os.path.isdir(os.path.join(path, file))  else os.path.getsize(os.path.join(path, file)) for file in dir_list)# return sum(s)def show_size(size):"""按照字节的大小展示显示符号 具体是显示字节呢还是kb还是Mb还是Gb:param size: 字节:return:显示类型"""if size < 1024:return str(size) + ' bytes'elif 1024 <= size < 1024 * 1024:return str(round(size / 1024, 2)) + ' kb'elif 1024 * 1024 <= size < 1024 * 1024 * 1024:return str(round(size / (1024 * 1024), 2)) + ' Mb'else:return str(round(size / (1024 * 1024 * 1024), 2)) + ' Gb'if __name__ == '__main__':while True:path = input('请输入文件夹路径:').strip()if path in ['q', 'Q']:breakif os.path.exists(path):  # 判断路径是否存在if os.path.isfile(path):  # 判断是否为文件size = os.path.getsize(path)else:  # 说明是文件夹size = get_dir_size(path)# 调用最终显示具体值的函数s = show_size(size)print(s)else:print('========该路径不存在,请重新输入========')

方式1 优化

import osdef get_dir_size(path, size=0):"""递归调用,统计文件大小:param path: 文件夹路径:return: 文件字节"""# 列表显示出文件夹下的所有子文件及子文件夹dir_list = os.listdir(path)for file in dir_list:# 遍历出是不包含前缀的,所以需要拼接完整路径f = os.path.join(path, file)# 判断遍历出来的是否为文件夹,是文件夹继续递归调用if os.path.isfile(f):size += os.path.getsize(f)# 否则它就是文件夹,继续递归调用else:size = get_dir_size(f, size)return size# 有一定功力的人可以用如下三元表达式# s= (get_dir_size(os.path.join(path, file)) if os.path.isdir(os.path.join(path, file))  else os.path.getsize(os.path.join(path, file)) for file in dir_list)# return sum(s)def show_size(size):"""按照字节的大小展示显示符号 具体是显示字节呢还是kb还是Mb还是Gb:param size: 字节:return:显示类型"""if size < 1024:return str(size) + ' bytes'elif 1024 <= size < 1024 * 1024:return str(round(size / 1024, 2)) + ' kb'elif 1024 * 1024 <= size < 1024 * 1024 * 1024:return str(round(size / (1024 * 1024), 2)) + ' Mb'else:return str(round(size / (1024 * 1024 * 1024), 2)) + ' Gb'if __name__ == '__main__':while True:path = input('请输入文件夹路径:').strip()if path in ['q', 'Q']:breakif os.path.exists(path):  # 判断路径是否存在if os.path.isfile(path):  # 判断是否为文件size = os.path.getsize(path)else:  # 说明是文件夹size = get_dir_size(path)# 调用最终显示具体值的函数s = show_size(size)print(s)else:print('========该路径不存在,请重新输入========')

方式二、使用现成功能

以下只是部分核心代码

import osdef get_dir_size(path, size=0):for root, dirs, files in os.walk(path):for f in files:size += os.path.getsize(os.path.join(root, f))print(f)return sizes = get_dir_size(path=r'D:\测试\a.txt')
print(s)

Python统计文件夹大小相关推荐

  1. 获取 子文件夹 后缀_CSDN学院第一个Ptython Homework-- 递归统计文件夹大小

    作业: 通过第一周学习的内容,自主编写一个py文件,能够递归文件夹大小,并将统计后的大小进行格式化输出. 作业体现形式: 以代码的方式保存成后缀为py的脚本. 作业的注意事项: 1.文件名命名规范. ...

  2. python获取文件夹大小_S3 API for python–创建bucket文件夹统计文件夹大小

    最近一直在跟S3打交道,但是苦于java不会,python懂一点,API这个东东经常听也知道是啥,但是没有实际根据API文档去进行相关开发的经历,所以前期一直很忐忑,都是找别人帮忙写好特定功能的程序, ...

  3. python 统计文件夹下的文件夹/某类型文件的数目

            用代码读取文件时,有时需要统计某文件夹下所有文件的数目,并读取指定数目的文件!我们通常使用python的os模块完成统计工作,具体方法如下: 1.统计某文件夹下的文件夹和文件的总个数( ...

  4. linux管道文件数量,Linux 下统计文件夹大小及文件数量

    [查看文件夹大小]# /lib 目录大小 du -sh /lib # /lib 子目录大小 du -sh /lib/* # 查看 /lib 目录下普通文件大小 find /lib -type f -p ...

  5. 用python统计文件夹下所有类型文件总数

    在学习python代码的过程中,有时候可以编写一些小程序练练手,今天,我就来分享一下我的几个python小程序,主要是来统计文件夹下各种类型的文件总数. 第一个,输入地址,返回目录下所有文件类型及其个 ...

  6. python 根据文件夹大小删除修改时间比较早的文件

    '''根据文件夹大小定时删除文件夹部分比较旧的数据''' import os import time import datetime FILE_DIR = 'E:/Djangocode/RSMDSys ...

  7. python统计文件夹中图片的数量个数

    做神经网络科研时,往往需要统计文件夹中照片的个数.代码如下: import ospath ="E:/ResNet_Data/shiyan/train/Bacterialblight" ...

  8. Python 计算文件夹大小、文件大小

    1.获取文件夹的文件 import os pathvar=r'D:\pycharm project\day17' lst=os.listdir(pathvar) print(lst) 2.计算文件的大 ...

  9. python 统计文件夹各类格式文件数量, 具通用性

    # -*-coding:utf-8-*- #============================================================================== ...

最新文章

  1. 拉取远程分支_git使用教程之创建本地库并关联远程库(笔记整理篇一)
  2. python数字类型-Python数字类型介绍
  3. Python编程基础:第三十五节 文件删除Delete a File
  4. 再上24天班,小长假就来了!
  5. rx.observable_在Spring MVC流中使用rx-java Observable
  6. TP3.2之WHERE组合条件处理
  7. 简析LIVE555中的延时队列
  8. QT【001】- 基础写在前面的话
  9. 精通Android自定义View(十一)绘制篇Canvas分析之裁剪
  10. 【linux】linux 安装 protobuf 2.5.0 版本
  11. 190301每日一句
  12. ai人工智能_AI如何帮助截肢者?
  13. 记事本编写java_如何使用记事本编写java程序
  14. 楚纳电动车禁入电梯管控系统-电梯阻车原理
  15. MySQL数据库实现主从同步
  16. Aquariusの瓶子的眼泪
  17. PS基础及选框工具笔记(CS6)
  18. 2022-04-01每日刷题打卡
  19. python import lap 出错
  20. Win7 Wifi和安卓端连接

热门文章

  1. Flash游戏教程:控制物体运动三法
  2. sass基础操作记录
  3. 群体创新技术/群体决策的几种类型
  4. 串行传输,并行传输,异步同步传输
  5. Bug: Safari浏览器input框placeholder和内容都不显示
  6. Magic Mouse 苹果鼠标移动速度改快的方法
  7. python项目作业_期末作业.py · 光辉/python练手小项目 - Gitee.com
  8. 移动硬盘 无法读取 插入电脑没反应 无法识别 怎么办
  9. Burpsuite介绍及2022.8.2版本超详细安装教程(图文版)
  10. mysql导出excel 科学计数法_mysql导出长数字到excel避免显示为科学记数法 解决方法...