首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

文件处理实战例子

Python大讲堂

编码必备

内容概要:

如何用文件os模块

如何用递归函数

如何使用字典列表‍

说明:

本文章资料和或等参考摘自XINXIN的实战实例

以下图片为代码,#后是注释

每一段程序分析不可作为源码使用,图片可以,或则回复下载也可以

01

解决问题

① 实际背景:

今天我被要求做一件很机械的事情,统计一个文件夹内所有的文件名称和其大小输入excel表,统计总容量,我费了很多心思写了文件名提取的VBA代码进行忽略了一个问题,多层文件夹嵌套的文件难以提取,于是就想到了python来解决这个问题。(PS:虽然因为时间关系还是先手动完工交给老大了)

问题1:我们要统计该目录下有多少个文件并显示(包含子目录)

问题2:该目录总共的大小可以按M,也可以按K显示

问题3:该目录下最大的文件和最小的文件,以及对应的大小

② 文件目录:

根目录为:C:\Users\dz\Desktop\data

③ 程序分析:

1).因为‍‍‍‍‍要列出最大/最小的文件名字和大小,我们用字典的统计和输出

2).把目录下的全部文件和目录列出

A.若是文件就统计大小

B.若是子文件夹,就继续寻找文件,然后不断重复刚才的过程,用递归

3).最后就是显示,要按MB,KB显示,需要我们定义一个扩展的函数入参结构‍‍‍‍‍

02

turtle作图

① 获得文件大小和名字:

②列出所有文件(包含子文件夹内文件):

③统计大小,对应单位计算:

ifsize_KB: #KB显示

returnstr(round(sum(files)/1024,2))+'k'#精确到后两位

④主函数调用:

mypath=r'C:\Users\dz\Desktop\选修课html+css'

#防止转义使用r

all_files_size=displayFilesSize(files_dict.values(),size_MB=True)

#打印文件个数大小

iflen(files_dict)>1:

new_files_dict=zip(files_dict.values(),files_dict.keys())

#print (max(new_files_dict))

print(min(new_files_dict))

iflen(files_dict)>1:

new_files_dict=zip(files_dict.values(),files_dict.keys())

print(max(new_files_dict))

#print (min(new_files_dict))

#如果是python2.7版本则使用一段if取消注释即可取

#python3.6版本在使用min max之后字典内数据就清空了

#所以重新插入一份

finally 最终效果:

公众号回复1834 获得源码

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181127G0BFF000?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券