一文教你利用Python制作一个C盘清理器
关于电脑的垃圾清理操作,已经有很多的成熟的软件可以帮助我们完成C盘的垃圾清理操作,比如360等等。
但是使用三方的清理软件往往伴随着很多的广告,而且很多离线情况下并不允许安装这样的三方软件工具。
作为程序猿,自己动手才能丰衣足食,于是想着何不使用python制作一个简易的C盘清理工具彻底摆脱系统盘日益膨胀的烦恼呢?
关于python的文件清理操作,实际上我们使用标准模块os即可满足所有的文件操作。
一般在C盘的清理过程中,我们能够清理的文件类型主要如下:
''' '.tmp':'临时文件', '.编程客栈_mp':'临时文件_mp', '.log':'日志文件', '.gid':'临时帮助文件', '.chk':'磁盘检查文件', '.old':'临时备份文件', '.xlk':'Excel备份文件', '.bak':'临时备份文件bak' '''
既然已经知道了需要清理的文件类型,那实现思路就是将这些文件找出来后删除掉即可。
将我们接下来代码块中使用到的os标准模块直接导入到代码块中。
#Importingtheosmodule. importos
现在可以将一些全局变量首先定义好,比如全局的系统操作路径、待清理的文件后缀名等等。
#待清理的文件后缀名称 suffix_dict={ '.tmp':'临时文件', '._mp':'临时文件_mp', '.log':'日志文件', '.gid':'临时帮助文件', '.chk':'磁盘检查文件', '.old':'临时备份文件', '.xlk':'Excel备份文件', '.bak':'临时备份文件bak' } #用户缓存数据类型名称 user_profile_list=[ 'cookies','recent','TemporaryInternetFiles','Temp' ] #Windows系统路径文件类型 windir_list=[ 'prefetch','temp' ] #系统驱动路径 sys_drive=os.environ['systemdrive']+'\\' #用户缓存路径 user_profile=os.environ['userprofile'] #Windows系统路径 win_dir=os.environ['windir']
以上相关的C盘清理的全局变量已经设置完成了,接下来我们创建一个ClaenFilesUtil的类来完成对文件清理的业务操作过程。
#Thisclassisusedtocleanupfilesinadirectory classCleanFilesUtil(): def__init__(self): """ Aconstructor.ItiscalledwhenanobjectiscreatedfroMAClassanditallowstheclasstoinitializethe attributesofaclass. """ self.del_info={} self.del_file_paths=[] self.total_size=0 forsuffix_nandroidame,commentinsuffix_dict.items(): self.del_info[suffix_name]=dict(name=comment,count=0) defscanf_files(self): """ Ittakesalistoffiles,andreturnsalistoflistsofthelinesineachfile """ forroots,dirs,filesinos.walk(user_profile): forfiles_iteminfiles: file_extension=os.path.splitext(files_item)[1] iffile_extensioninself.del_info: file_full_path=os.path.join(roots,files_item) self.del_file_paths.append(file_full_path) self.del_info[file_extension]['count']+=1 self.total_size+=os.path.getsize(file_full_path) defshow_count_message(self): """ Itprintsthenumberofmessagesintheinbox. """ byte=self.format_size(self.total_size) foriinself.del_info: print(self.del_info[i]["name"],"共计",self.del_info[i]["count"http://www.devze.com],"个") returnbyte defformat_size(self,androidbyte): """ Ittakesanumberofbytesandreturnsastringwiththenumberofbytes,kilobytes,megabytes,orgigabytes, depe开发者_开发培训ndingonthesize :parambyte:Thesizeinbytes """ try: kb=byte//1024 except: print("传入字节格式不对") return"Error" ifkb>1024: M=kb//1024 ifM>1024: G=M//1024 return"%dG"%G else: return"%dM"%M else: return"%dkb"%kb defremove_file_or_dir(self): """ >Thisfunctionremovesafileordirectory """ forfull_path_oneinself.del_file_paths: try: ifos.path.isfile(full_path_one): os.remove(full_path_one) print("文件:",full_path_one,"已移除") elifos.path.isdir(full_path_one): os.rmdir(full_path_one) print("文件夹",full_path_one,"已移除") exceptWindowsError: print("错误:",full_path_one,"不能被移除") if__name__=="__main__": print("开始初始化C盘清理程序") clean_=CleanFilesUtil() print('C盘清理程序初始化完成') print("开始扫描所有待清理文件路编程径") clean_.scanf_files() print("完成所有待清理文件路径扫描") print("扫描完成以下是需要待清理的文件路径:") clean_.show_count_message() print("开始执行C盘垃圾文件删除") clean_.remove_file_or_dir() print("所有C盘垃圾文件已清理完成") input("输入任意键关闭窗口...")
以上就是所有C盘垃圾清理的主要程序业务代码了,但是为了将该清理工具设置成定时任务去执行。
于是,我想到了前几天发布的文章[python不要再使用while死循环,使用定时器代替效果更佳!],可以通过定时器的方式来满足业务要求。
除了使用代码块来完成定时还可以通过配置windows或其他操作系统的定时任务来完成定时执行的需求。
最后,为了方便没有python基础的小伙伴可以直接使用该工具,我将其打包成了exe应用程序。
到此这篇关于一文教你利用Python制作一个C盘清理器的文章就介绍到这了,更多相关Python C盘清理器内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
精彩评论