利用os模块求一个文件夹的大小。
一、递归方法
def size(path): #给定一个初始的文件夹路径
num = 0
list_name = os.listdir(path) #利用os模块方法,以列表的形式获得该文件夹下面的所有文件或者文件夹名称
for i in list_name:
file_name = os.path.join(path,i) #循环的i是文件或者文件夹的名称,需要拼接出绝对路径
if os.path.isdir(file_name): #判断该路径是否为文件夹
num1 = size(file_name) #***此处一定要用一个变量来接收递归函数的返回值
num += num1
else:
num += os.path.getsize(file_name) #计算文件的大小
return num
print(size("F:\pythonhomework"))
二、循环、堆栈思想
def func(lst): #先将文件夹的路径以列表的形式传人函数
size = 0
while lst: #列表只要不为空就执行循环
path = lst.pop() #将列表中最后一个路径取出来
list_name = os.listdir(path)
for i in list_name:
path_name = os.path.join(path,i)
if os.path.isdir(path_name):
lst.append(path_name) #***如果是文件夹就将该路径加到列表中
else:
size += os.path.getsize(path_name)
return size
lst = ["F:\pythonhomework"]
print(func(lst))
利用os模块求一个文件夹的大小。的更多相关文章
- linux怎么查看一个文件夹的大小
linux查看一个文件夹的大小的命令为: -lh 该文件夹的完整路径 例,查询/var文件夹的大小: -lh /var du 递归查询该路径下所有文件的大小(若不加任何参数,则显示文件夹内的所有文件, ...
- [python学习篇] [os模块] [2]删除文件夹
def deleteDirectory(self,current_path): if not os.path.exists(current_path): self.logger.info(curren ...
- 通过Python计算一个文件夹大小
在进行计算一个文件夹内容大小的时候,我们要考虑文件夹内都有什么内容,可能都是一个一个的单文件,也有可能都是子文件夹,或者二者都有,既然要计算整个文件夹的大小,我们当然要计算每一个文件的大小以及每一个子 ...
- 把模块有关联的放在一个文件夹中 在python2中调用文件夹名会直接失败 在python3中调用会成功,但是调用不能成功的解决方案
把模块有关联的放在一个文件夹中 在python2中调用文件夹名会直接失败在python3中调用会成功,但是调用不能成功 解决办法是: 在该文件夹下加入空文件__init__.py python2会把该 ...
- Python遍历一个文件夹下有几个Excel文件及每个Excel文件有几个Sheet
一. 解决问题: 工作中常会遇到合并Excel文件的需求,Excel文件数量不确定,里面的Sheet 数量是可变的,Sheet Name是可变的,所以,需要用到遍历一个文件夹下有几个Excel文件,判 ...
- 转移大于2m的pdf文件到另外一个文件夹
转移大于2m的pdf文件到另外一个文件夹 remove_moret2M_pdfs.py # -*- coding: utf-8 -*- """ Created on Mo ...
- Path,Files巩固,题目:从键盘接收两个文件夹路径,把其中一个文件夹中(包含内容)拷贝到另一个文件夹中
这个题目用传统的File,InputStream可以做,但是如果用Files,Path类做,虽然思路上会困难一些,但是代码简洁了很多,以下是代码: import java.io.IOException ...
- python基础:os模块中关于文件/目录常用的函数使用方法
Python是跨平台的语言,也即是说同样的源代码在不同的操作系统不需要修改就可以同样实现 因此Python的作者就倒腾了OS模块这么一个玩意儿出来,有了OS模块,我们不需要关心什么操作系统下使用什么模 ...
- os模块中关于文件/目录常用的函数使用方法
os模块中关于文件/目录常用的函数使用方法 函数名 使用方法 getcwd() 返回当前工作目录 chdir(path) 改变工作目录 listdir(path='.') 列举指定目录中的文件名('. ...
随机推荐
- DSOFramer 控件(转)
1.Html电子印章.手写签名系统演示:http://www.dianju.com.cn/video.htm在线试用:http://www.dianju.com.cn/websignpiaoju/ht ...
- WXS --注释
- NET中各种加密解密方法
/// <summary> /// AES对称加密和分组加密中的四种模式(ECB.CBC.CFB.OFB),这三种的区别,主要来自于密钥的长度,16位密钥=128位,24位密钥=192位, ...
- 查看cpu核的相关信息
查看CPU信息(型号) cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 80 Intel(R) Xeon(R) CPU E7-4820 v3 ...
- pandas对时间列分组求diff遇到的问题
例子: df = pd.DataFrame() df['A'] = [1, 1, 2] df['B'] = [datetime.date(2018, 1, 2), datetime.date(2018 ...
- 在eNSP上简单的模拟企业网络场景(不同网段互连)
额..首先你要有eNSP工具和Wireshark抓包工具,没有的话可以上网搜索一下,最好下载最新版本的,新版本中拥有更多型号的机器 这个实验我们主要模拟某公司购买了新的路由器和交换机.交换机S1连接客 ...
- C++中的const的简单用法
一.符号常量的声明 常量声明的语句的形式: const + 数据类型说明符 + 常量名 = 常量值 数据类型说明符 + const + 常量名 = 常量值 注意: 符号常量 ...
- dedecms5.7怎么安装百度编辑器
用过dedecms的朋友都知道dede自带的文本编辑器很不好用,且有些功能还需要我们自己手动去修改源码,才能完成我们想要的效果.现在广大用dedecms的朋友们,你们有福啦!我们可以利用百度的Uedi ...
- Python进阶:对象复制与比较,分深浅,见真假
"==" 与 is python 为 10 开辟内存空间, a与b同时指向这块内存,即a与b的值相等,a与b的id也相等.因此 a==b 与 a is b 都返回True: a = ...
- 机器学习-EM算法笔记
EM算法也称期望最大化(Expectation-Maximum,简称EM)算法,它是一个基础算法,是很多机器学习领域算法的基础,比如隐式马尔科夫算法(HMM), LDA主题模型的变分推断,混合高斯模型 ...