使用场景
我们从 magnet:?xt=urn:btih:xxxxx 下载的学习资料里总是有些莫名其妙的小文件,对专门用来装学习资料的磁盘空间造成了很大浪费,一个个删是不可能的,这辈子都不可能的。这种重复性劳动当然是交给代码去做啦,在2T硬盘告急的时候,我写了一个脚本清理空间,给JAVA, CPP, R的学习资料让点位置。(滑稽)
注意事项(使用前请阅读!!!)
1.本脚本按照我的需求,只针对两层文件夹适用,举例:
有如下路径:D:\qbit\download\AAAA-111\xuanchuanye (以通用的格式举例,懂的人都懂)
本程序进入download,判断此文件夹内所有文件大小:
若小于100M, 则删除;
若大于100N,则保留;
若为文件夹,如AAAA-111,则进入,执行以下操作:
判断AAAA-111内所有文件:
若小于100M, 则删除;
若大于100N,则保留;
若为文件夹xuanchuanye,注意!!!注意!!!注意!!!
直接删除此文件夹!!!
直接删除此文件夹!!!
直接删除此文件夹!!!
请在使用前按需修改,数据无价,一旦丢失,与本人无关!使用此代码即表示您已经阅读并同意!
2.脚本时间复杂度什么的一概没有考虑,我这方面知识几乎为零,毕竟只是个删除百来个文件夹也不需要考虑效率对吧!所以如果你用来执行成千上万个文件夹的工程请慎用!!!本人同样概不负责,嘻嘻。
3.使用前请关闭其他可能占用目标文件的程序;
4.请注意所有文件是否符合python的标准;
5.请勿用于商业用途,我是不收钱啦,但是你出了事我可没钱赔你哦~
代码原文
我也不知道这里代码一般怎么储存,也不是什么重要的东西,就放正文里面吧!
import os
import glob
import shutil
os.chdir('G:\Temp') #进入down文件夹
path_file = glob.glob('G:\Temp\*') #所有文件名给path_file
n = len(path_file) #path-file长度
for file_name in path_file : #从第一个对象开始
if(os.path.isdir(file_name)): #如果是文件夹a3
os.chdir(file_name) #进入这个文件夹abc123
file_name = os.path.join(file_name,'*')
path_subfile = glob.glob(file_name) #读取abc123里面的文件名给path-subfile
n1 = len(path_subfile) #子文件夹a3文件个数
for file_name1 in path_subfile: #从a3第一个文件开始
if(os.path.isdir) : #如果是文件夹ltwx
shutil.rmtree(file_name1) #删除ltwx
else: #如果不是文件夹判断大小
if(os.path.getsize(file_name1) < 100*1024*1024): #文件小于100MiB则删除
shutil.rmtree(file_name1) #删除
else: #文件大于100MiB
continue #进行下一次循环
else: #如果是文件
if(os.path.getsize(file_name) < 100*1024*1024): #文件小于100MiB则删除
shutil.rmtree(file_name) #删除
else: #文件大于100MiB
continue #进行下一次循环