2021-06-18

题目:
1.搜索整个文件夹,包括文件夹内的所有文件夹
2.筛选体积大于100MB的压缩包zip文件
3.筛选这些文件中日期早于XXX年之前的文件
4.输出这些文件的路径


import os#调用'os'模块
import datetime#调用'datetime'
for dirpath,dirname,filenames in os.walk('D:\\'):#1.搜索整个文件夹,包括文件夹内的所有文件夹
# dirpath是文件夹路径
# dirnames是dirpath这个文件夹下的 子文件夹 列表
# files是dirpath这个文件夹里的文件列表
   for i in filenames:#在(/进入)每一个文件夹/文件里
       if i.endswith('.zip') and not i.startswith('$'):#2—1.筛选压缩包'.zip'文件
           a = dirpath#给'a'贴上'一个文件夹路径'的标签
           a += f'\\{i}'#令'a'+'目标文件'
           if os.stat(a).st_size>=int(100*1024*1024):#2-2.筛选体积大于100MB的压缩包zip文件
               file_mtime = os.stat(a).st_mtime#3-1.进行Unix时间上的操作
               that_time=datetime.datetime.fromtimestamp(file_mtime)#3-2
               if that_time.year<=int(2021):#3-3,筛选这些文件中日期早于2021年之前的文件
                    print(f'发现文件:{i},\n创建时间:{that_time}\n大小:{os.stat(a).st_size/(1024**2)}mb\n目录:{dirpath}')
                    #4.输出这些文件的名称、创建时间、大小(mb)、路径

上面是成品代码和注释,以下是我的源代码:

# 1.搜索整个文件夹,包括文件夹内的所有文件夹
# 2.筛选体积大于100MB的压缩包zip文件
# 3.筛选这些文件中日期早于2019年之前的文件
# 4.输出这些文件的路径
import os
# import glob
import datetime
for dirpath,dirname,filenames in os.walk('D:\\'):##1.搜索整个文件夹,包括文件夹内的所有文件夹
   # print(f'发现文件{dirpath}')# dirpath是文件夹路径
   # print(dirname)# dirnames是dirpath这个文件夹下的 子文件夹 列表
   # print(filenames)# files是dirpath这个文件夹里的文件列表
   for i in filenames:
       # if i==glob.glob('*.zip')
       if i.endswith('.zip') and not i.startswith('$'):
           # print(i)
           a =dirpath
           a+=f'\\{i}'
           # print(dirpath)
           # print(i, os.stat(i.endswith(i)).st_size)
           # print(os.stat(a).st_size)
           if os.stat(a).st_size>=int(100*1024*1024):
               file_mtime = os.stat(a).st_mtime
               that_time=datetime.datetime.fromtimestamp(file_mtime)
               if that_time.year<=int(2021):
                    print(f'发现文件:{i},\n创建时间:{that_time}\n大小:{os.stat(a).st_size/(1024**2)}mb\n目录:{dirpath}')
                    # print(dirpath)


感觉还行,鬼知道我在这上面花了多少时间。目的不是分享,只是为了给自己留个标记。

但是,

拿走请三连

,谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值