Python自动清理电脑垃圾文件,一键启动。垃圾清理器的作用其实就是清理这些文件,并不会影响我们使用产生的数据文件。如果是手动删除的话,要一一找出来删除会比较麻烦。用python写个脚本,直接启动,就大功告成了。[阅读全文]本脚本实现使用的内置库为os库,未通过其他三方插件实现。所以不需要下载其他python模块,直接调用内置库即可。importos因为我们要用到界面处理,所以这里导入pyqt5模块来实现UI界面布局。fromPyQt5.QtGuiimport*fromPyQt5.QtCoreimport*fromPyQt5.QtWidgetsimport*importsys先写好需要用到的UI界面,或者使用上面说的界面开发的写法。classFileDestory(QWidget):def__init__(self):super(FileDestory,self).__init__()self.init_ui()definit_ui(self):self.setWindowTitle('电脑垃圾清理器公众号:[Python集中营]')self.setWindowIcon(QIcon('垃圾桶.ico'))self.setFixedWidth(550)self.setFixedHeight(80)self.process=QProgressBar()self.process.setRange(0,5)self.start_btn=QPushButton()self.start_btn.setText('开始清理')self.start_btn.clicked.connect(self.start_btn_click)hbox=QHBoxLayout()hbox.addWidget(self.process)hbox.addWidget(self.start_btn)self.thread_=WorkThread(self)self.thread_.finished.connect(self.finished)self.thread_.exec_step.connect(self.set_step)self.setLayout(hbox)defstart_btn_click(self):self.start_btn.setEnabled(False)自我。thread_.start()deffinished(self,finished):如果finished为True:self.start_btn.setText('Cleanuphasbeencompleted')self.start_btn.setEnabled(False)defset_step(self,step):self.process.setValue(step)创建工作子线程,所有与电脑清理相关的操作都放在在这个子线程中执行,和主线程分开,避免主线程直接卡死,因为主线程主要是用来处理UI界面相关操作的classWorkThread(QThread):#定义要传递的信号量变量传递给主线程的变化信息,以便主线程可以知道运行的结果。#子线程是否完成的信号变量=pyqtSignal(bool)#子线程的具体步骤信号变量exec_step=pyqtSignal(int)def__init__(self,parent=None):'''初始化函数子线程类的paramparent:UI界面类对象'''super(WorkThread,self).__init__(parent)self.working=Trueself.parent=parentdef__del__(self):'''是否线程执行需要进入等待过程:return:'''self.working=Falseself.wait()defrun(self):'''子线程主要执行逻辑业务功能:return:'''file_type={'.tmp':'临时文件','._mp':'临时文件_mp','.log':'日志文件','.gid':'临时帮助文件','.chk':'磁盘检查文件','.old':'临时备份文件','.xlk':'Excel备份文件','.bak':'临时备份文件bak'}user_pro=os.environ['userprofile']defdel_file_and_dir(root):try:ifos.path.isfile(root):操作系统。删除(根)print("file",root,"hasbeenremoved!")elifos.path.isdir(root):os.rmdir(root)print("folder",root,"hasbeenremoved!")除了WindowsError:print("Thisfile",root,"Cannotberemoved!")definit_size(b):try:kb=b//1024except:print("Incorrectbyteformat")return"Error"ifkb>1024:M=kb//1024如果M>1024:G=M//1024return"%dG"%Gelse:return"%dM"%Melse:return"%dkb"%kbclassClean(object):def__init__(self):self.del_info={}self.del_file_paths=[]self.total_size=0fori,jinfile_type.items():self.del_info[i]=dict(name=j,count=0)defcount_files(self):forroots,dirs,filesinos.walk(user_pro):forfiles_iteminfiles:file_extension=os.path.splitext(files_item)[1]如果文件扩展名在self.del_info中:=1self.total_size+=os.path.getsize(file_full_path)defshow_del_files(self):re=init_size(self.total_size)foriinself.del_info:print(self.del_info[i]["name"],"共计",self.del_info[i]["count"],"个")returnredefdelete_files(self):forpathinself.del_file_paths:print('准备处理文件路径:',path)del_file_and_dir(path)self.exec_step.emit(1)clean=Clean()self.exec_step.emit(2)clean.count_files()self.exec_step.emit(3)re=clean.show_del_files()self.exec_step.emit(4)clean.delete_files()self.exec_step.emit(5)self.finished.emit(True)添加布局到主函数体循环,启动整个应用程序if__name__=='__main__':app=QApplication(sys.argv)main=FileDestory()main.show()sys.exit(app.exec_())以上就是所有的电脑垃圾文件自动清理代码块完成,复制到开发工具中直接运行即可。【往期精选】有了jmespath,在python中处理json数据成为一种享受...解锁一门新技能,如何在Python代码中使用表情...万能列表列表,在python中栈和队列的实现完全依赖在上面!如何使用pyqt5实现数据增删改查功能...介绍一款文字转语音神器,几行代码搞定!初学者用python自动批量整理文件的福利:分享五个免费的Python学习网站,赶紧收藏吧!有趣的控制台玩法:一行代码绘制控制台图像!数据处理小工具:Excel批量数据文件分割器/整合器...办公自动化:PDF文件合并,合并多个PDF文件...GUI猜数游戏,直接玩...教你做一个数据图表生成器(带源代码)...
