利用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='.') 列举指定目录中的文件名('. ...
随机推荐
- __iter__方法demo
class Foo(object): def __init__(self,name,data_list): self.name = name self.data_list = data_list de ...
- php类的继承(基本概念,访问权限修饰符,重写override)
类的继承 简单理解: 某个类A具有某些特征,另一个类B,也具有A类的所有特征,并且还可能具有自己的更多的一些特征,此时,我们就可以实现:B类使用A的特征信息并继续添加自己的一些特有特征信息. 基本概念 ...
- 在 Docker 中手工部署 ASP.NET Core 应用
另一篇:在 Visual Studio 中部署 ASP.NET Core 应用 操作步骤 1. 安装 Docker For Windows(安装之前 Windows 需要开启 Hyper-V 虚拟机 ...
- Quartz.Net—DateBuilder
定时框架中最重要的就是时间,我们也可以直接使用Cron这种事件格式. 使用其他的时间格式,就可以用DateBuilder快速的创建出需要的时间. 因为quartz是一个定时框架,所以对于操控时间 ...
- webservice 调用慢问题解决
<system.net> <defaultProxy enabled="false" useDefaultCredentials="false" ...
- git基本使用及分支切换命令
git init 生成本地仓库 git status 查看本地文件状态,未提交的文件显示红色 git add . (点表示提交所有文件到暂存区,也可指定部分文件到暂存区,填写指定文件名加路径即可) ...
- 15 飞机大战:pygame入门、python基础串连
0 pygame模块的导入 import pygame导入pygame包 使用pygame.init()导入pygame的所有模块.只有导入模块pygame才能使用. 使用pygame.quit()卸 ...
- WUSTOJ 1318: 区间的连通性(Java)
题目链接:
- 二十一、RTC驱动
一.RTC设备驱动分析 内核的rtc驱动位于内核drivers/rtc目录下,里面包含各个平台的RTC驱动.读者可在此目录下任意选择一个单板驱动文件进行分析,我选择的是rtc-davinci.c文件. ...
- ACM集训
2019-07-18 09:06:10 emmm.... 昨天5个小时做了一道题,心情复杂,不着急慢慢来 Ivan recently bought a detective book. The book ...