百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python递归遍历目录计算目录大小(python 遍历目录文件)

off999 2024-10-15 12:10 41 浏览 0 评论

如果要得到一个目录下的子目录名,子目录大小,文件名,文件大小等参数,递归遍历是常用的方法,下面是一个python脚本例程

#!/usr/bin/env python

# -*- coding:utf-8 -*-

import os

import time

dic = {

'sum_size':0,

'file_amounts':0,

'directory_amounts':0

}

files = []

def rescusive(path):

dirs=[]

items = os.listdir(path)

for item in items:

item = os.path.join(path,item)

if os.path.isfile(item) and item not in files:

files.append(item)

elif os.path.isdir(item) and item not in dirs:

dirs.append(item)

for directory in dirs:

dic['directory_amounts'] += 1

rescusive(directory) # 递归遍历子目录


def get_size(path, record): # record是记录程序运行结果的文件名

rescusive(path) # 遍历目录

files.sort() #文件排序

with open(record,mode="a+",encoding='utf-8') as f:

for file in files:

size = os.path.getsize(file)

print(file,size)

dic['file_amounts'] += 1

dic['sum_size'] += size

data = '{} {}\n'.format(file,size)

''' 格式化字符串的函数 str.format(),它增强了字符串格式化的 功能。

基本语法是通过 {} 和 : 来代替以前的 % 。

format 函数可以接受不限个参数,位置可以不按顺序 '''

f.write(data)

f.close()

return dic['sum_size']

if __name__ == '__main__':

path = './npy'

record = 'data.txt'


localtime = time.asctime(time.localtime(time.time())) # 取当地时间,

print(localtime)

with open(record, mode="a+",encoding='utf-8') as f:

f.write(localtime)

f.write('\n')


result = get_size(path,record)

print(result)

amount = '{}:{}:{}'.format(dic['directory_amounts'], dic['file_amounts'], dic['sum_size'])

print(amount)


f.write(amount)

f.close()


print("Hello %s" % path.split('/')[-1].upper())


os.walk() 方法主要用来遍历一个目录内各个子目录和子文件,程序文件输入os模块。

代入参数 os.walk(top)

top :是你所要遍历的目录的地址, 返回的是一个三元组 (dirpath, dirnames, filenames)

返回的三元组介绍

dirpath :string,代表目录的路径,

dirnames :list,包含了dirpath下所有子目录的名字。

filenames :list,包含了非目录文件的名字。

相关推荐

windows无法连接打印机拒绝访问
  • windows无法连接打印机拒绝访问
  • windows无法连接打印机拒绝访问
  • windows无法连接打印机拒绝访问
  • windows无法连接打印机拒绝访问
oppo解除安全模式(oppp取消安全模式)

一般来说,关机重启手机即可退出安全模式。如果重启手机安全模式还没有解除的话,可以使用手机杀毒软件对手机进行全盘查杀,杀完毒再进行重启试试。如果还是不行的话,那就只能备份手机里的重要数据,刷机或者恢复出...

电脑更新后无法正常启动(电脑更新后无法正常使用)

电脑更新无法开机可能有多种原因。首先,可能是由于更新过程中出现了错误或中断,导致系统文件损坏或丢失,从而无法正常启动。其次,可能是更新过程中出现了兼容性问题,导致某些硬件或驱动程序无法与新的系统版本兼...

office免费版下载win7(office2007官方免费版)

office2007官方下载免费完整版win7/win8/win8.1/win10通用的。office2007官方下载免费完整版win7/win8/win8.1/win10通用版本包括Word、Exc...

hp笔记本重装系统按哪个键(hp笔记本win10重装系统详细步骤)

恢复系统重装,在开机时n1SC键,在弹出的菜单中按f2或者是f9键,选项中选择如果是从光盘重装系统的就选择从光盘启动系统,如果使用U盘,启动系统就选择从U盘进入到系统中在开机时按ESC调出启动菜单,有...

磁盘重新分区(磁盘重新分区怎么操作)

您好,以下是给磁盘重新分区的步骤:1.打开磁盘管理工具。在Windows中,可以按Win键+X,然后点击磁盘管理来打开。在Mac中,可以打开磁盘工具来进行分区。2.选择需要分区的磁盘。在磁盘管理工...

如何用手机设置无线路由器密码

首先打开你的手机,在设置中确认连接上你的wifi之后,任意打开一个浏览器,输入“tplogin.cn”;进入页面可以看见一个输入框,输入你设置过的宽带密码,如果你不知道可以打电话给宽带的客服查询;进入...

台式电脑用usb重装系统步骤(台式电脑怎样usb装机)

1.U盘WinPE系统制作先到网上去下载一个u盘启动盘制作工具的工具,常用的有u大师U盘启动盘制作工具。再把U盘插入电脑中,运行软件将u盘制作成启动盘。2.准备系统GHO镜像文件在网上下载GHOST系...

hotmail邮箱格式(hotmail邮箱登录后缀)

电子邮箱的正确格式为user@mail.server.name,其中user是收件人的用户名,mail.server.name是收件人的电子邮件服务器名。具体详情如下:1、QQ邮箱的标准格式为:112...

windows11主题包(win10 win11主题)

1."梦幻星空"是ColorOS11中最好看的主题。2.这是因为"梦幻星空"主题采用了炫酷的星空元素,配合流畅的动画效果,给人一种梦幻般的感觉。同时,主题的配色也...

戴尔官方商城官网(戴尔官方商城官网首页)

https://www.dell.com/戴尔公司于1992年进入《财富》杂志500强之列,戴尔因此成为其中最年轻的首席执行官。戴尔公司名列《财富》杂志500强的第48位。自1995年起,戴尔公司一直...

ghost64位(一键还原ghost)

步骤如下:  1、首先登陆微软官网(点击进入),根据自己电脑的需求下载IE11forWin7的对应版本(这里强调IE11forWin7只针对Win7SP1或以上系统);  2、选择对应的IE...

ie8 ie10浏览器手机版下载(ie8_11浏览器安卓手机版)

进入出现提示的网页,点击IE11右边的齿轮,再选添加到兼容性视图列表。网页会刷新一下,就变成IE7方式打开了。试试看。如果你无法下载文件,这个时候你可以把电脑重新启动一下,然后清理一下内存,再打开I...

手机破解qq空间相册的方法(手机怎么破解qq空间相册视频教学)

没有什么办法,你可以直接询问她吧,既然分手了就不要再纠缠了最好。QQ空间解锁步骤:1、登陆QQ空间,在右上角找到“设置”,把鼠标青放在设置上,不要点击,出现“帮助中心”。2、然后点击“帮助中心”,就会...

纯净版的win7旗舰版(win7的纯净版和旗舰版有什么区别)

win7系统纯净版,旗舰版并不是同一类概念。主要区别如下:纯净版是win7ghost版本的一种类型,是指该系统就是纯粹的win7系统,未包含任何第三方软件;而旗舰版是win7系统的官方划分的一种类型...

取消回复欢迎 发表评论: