在进行计算一个文件夹内容大小的时候,我们要考虑文件夹内都有什么内容,可能都是一个一个的单文件,也有可能都是子文件夹,或者二者都有,既然要计算整个文件夹的大小,我们当然要计算每一个文件的大小以及每一个子文件夹下的每一个子文件。计算每一个文件的大小我们肯定都可以计算到,或者如果我们知道一个文件夹内有子文件夹的数量,一个个遍历子文件夹的内容进行计算,但是如果我们不知道这个文件夹内到底有多少子文件夹呢?所以,根据我的思路,可以使用递归的方式进行计算每一个文件及每一个字文件夹的大小,但有个弊端就是在python中递归有最大递归层数,说不定会有哪个变态套了N多层文件夹,这样的话我们的程序可能会抛出异常,所以我们还要做一定的异常处理,总之闲话少说,见代码吧。代码如下:

 import os
total_size=0
def file_size(path):
global total_size
path=os.path.abspath(path)
file_list=os.listdir(path)
for i in file_list:
i_path = os.path.join(path, i)
if os.path.isfile(i_path):
total_size += os.path.getsize(i_path)
else:
try:
file_size(i_path)
except RecursionError:
print('递归操作时超出最大界限')
return total_size print(file_size('D:\\红军不怕远征难\\苍老师精彩集锦'))

通过Python计算一个文件夹大小的更多相关文章

  1. Linux查看一个文件夹大小

    1.Linux查看一个文件夹大小: du -sh /home/yangkun [yangkun@sg1 bin]$ du -sh /home/yangkun/ 164M /home/yangkun/ ...

  2. day24 计算任意文件夹大小 , 校验大文件的一致性 , 发抢红包程序

    #!/usr/bin/env python# -*- coding:utf-8 -*- # 1.计算任意一个文件夹的大小(考虑绝对路径的问题)# 基础需求 这个文件夹中只有文件# 进阶需求 这个文件夹 ...

  3. Python遍历一个文件夹下有几个Excel文件及每个Excel文件有几个Sheet

    一. 解决问题: 工作中常会遇到合并Excel文件的需求,Excel文件数量不确定,里面的Sheet 数量是可变的,Sheet Name是可变的,所以,需要用到遍历一个文件夹下有几个Excel文件,判 ...

  4. python 读取一个文件夹下的所jpg文件保存到txt中

    最近需要使用统计一个目录下的所有文件,使用python比较方便,就整理了一下代码. import os def gci(filepath): files = os.listdir(filepath) ...

  5. python计算文件夹大小——os.walk

    下面提供一种利用os.walk()快捷的计算指定文件夹大小的方法 话不多说,直接上代码 简略版: import os def get_file_size(file_path, size=0): for ...

  6. python计算文件夹大小(linux du命令 简化版)

    C盘又满了,怎么办?用了一些垃圾清理软件(或者bat脚本),但是还是不理想,那么具体哪些文件夹下面有巨大的文件呢?windows并不能通过详细信息看到每个文件夹的大小(PS:这里所谓的文件夹的大小是指 ...

  7. NSFileManager计算文件/文件夹大小

    在一些软件中,一般都会给用户展现当前APP的内存,同时用户可以根据自己的需要来清除缓存的内容.一般而言,文件夹是没有大小这个属性的,所以需要遍历文件夹的内容来计算文件夹的大小,下面用NSFileMan ...

  8. Python_计算文件夹大小

    计算文件夹大小 os.listdir('dirname') 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印 os.path.join(path1[, path2[, ...]]) 将 ...

  9. 通过python的hashlib模块计算一个文件的MD5值

    Python的hashlib提供了很多摘要算法,如MD5,SHA1等常用算法. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(如MD5值 ...

随机推荐

  1. 关于 Java 中关于 数组的声明

    第一种方式:直接声明(只能在定义处使用!) int[] arr = {2, 3, 4, 5} 第二种方式:显式声明(用于各种情况) 比如方法返回值: public static int[] getAr ...

  2. centOS 安装gitlab-runner

    1. curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sud ...

  3. C++ string中find() 用法

    string中 find()的用法 rfind (反向查找)  (1)size_t find (const string& str, size_t pos = 0) const;  //查找对 ...

  4. Python学习之旅(十九)

    Python基础知识(18):面向对象高级编程(Ⅰ) 使用__slots__:限制实例的属性,只允许实例对类添加某些属性 (1)实例可以随意添加属性 (2)某个实例绑定的方法对另一个实例不起作用 (3 ...

  5. 9 个用于移动APP开发的顶级 JavaScript 框架【申明:来源于网络】

    9 个用于移动APP开发的顶级 JavaScript 框架[申明:来源于网络] 地址:http://www.codeceo.com/article/9-app-javascript-framework ...

  6. Spring的bean管理(注解方式)

    注解:代码中的特殊标记,注解可以使用在类.方法.属性上面,使用注解可实现一些基本的功能.注解的写法是@注解名称(属性=属性值). 使用注解创建对象 第一步,创建Web项目,引入Spring的开发包 第 ...

  7. 一年工作经验的大专生程序员(java后台)

    1.文章前言     作为18应届毕业大专生已工作一年,相信这也是大部分同届生的现状.       那么,一个萌新进入职场一年都经历了什么呢?在校那会我是挺好奇的.       这篇文章是根据自己一年 ...

  8. python基础(11)-常用模块

    re(正则)模块 常用方法 findall() 以列表返回所有满足条件的结果 import re print(re.findall('\d','a1b2c2abc123'))#['1', '2', ' ...

  9. idea 无法找到或加载主类

  10. 【JVM】-NO.114.JVM.1 -【JDK11 HashMap详解-3-put-treeifyBin()-AVL】

    Style:Mac Series:Java Since:2018-09-10 End:2018-09-10 Total Hours:1 Degree Of Diffculty:5 Degree Of ...