题目:
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)
感觉还行,鬼知道我在这上面花了多少时间。目的不是分享,只是为了给自己留个标记。
但是,
拿走请三连
,谢谢。