简单的python清理程序!

import os
from getpass import getuser
from time import sleep
from psutil import disk_partitions
from shutil import rmtree
from ctypes import windll
import threadingdel_extension = {'.tmp': '临时文件','._mp': '临时文件_mp','.log': '日志文件','.gid': '临时帮助文件','.chk': '磁盘检查文件','.old': '临时备份文件','.xlk': 'Excel备份文件','.bak': '临时备份文件bak','Temps': 'Temp文件','Watch dog': 'Watch dog','upgrade files': '系统更新/补丁'
}del_userprofile = ['cookies', 'recent', 'Temporary Internet Files', 'Temp']
del_windir = ['prefetch', 'temp']
SYS_DRIVE = os.environ['systemdrive'] + '\\'
USER_PROFILE = os.environ['userprofile']
WIN_DIR = os.environ['windir']
tf = False
disks = disk_partitions()def del_dir_or_file(root):try:if os.path.isfile(root):os.remove(root)print('file ' + root + " removed", end='. \n')elif os.path.isdir(root):rmtree(root)print('dir ' + root + " removed", end='. \n')except WindowsError:print("failure " + root + " can't remove", end='. \n')def f1():global tfwhile True:if tf:breakfor s in ['/', '-', '\\']:if tf:breakprint(s, end='')sleep(0.25)print('', end='\r')def formatSize(b):try:kb = b // 1024except:print("传入字节格式不对")return "Error"if kb > 1024:M = kb // 1024if M > 1024:G = M // 1024return "%dGB" % Gelse:return "%dMB" % Melse:return "%dKB" % kbclass DiskClean(object):def __init__(self):self.del_info = {}self.del_file_paths = []self.total_size = 0self.places = [r'''C:\WINDOWS\Performance\WinSAT\winsat.log''',r'''C:\WINDOWS\PFRO.log''',r'''C:\WINDOWS\WindowsUpdate.log''',r'''C:\Users\Administrator\AppData\Local\Microsoft\CLR_v4.0_32\UsageLogs\Avira.SystemSpeedup.Core.Common.Starter.exe.log''',r'''C:\Users\Peter\AppData\Local\Microsoft\CLR_v4.0\UsageLogs\Overwolf.exe.log''',r'''C:\Users\Peter\AppData\Local\Microsoft\CLR_v4.0\UsageLogs\OverwolfBrowser.exe.log''',r'''C:\Users\Peter\AppData\Local\Microsoft\CLR_v4.0\UsageLogs\OverwolfUpdater.exe.log''',r'''C:\Users\Peter\AppData\Local\Microsoft\CLR_v4.0\UsageLogs\OWinstaller.exe.log''',r'''C:\WINDOWS\Logs\CBS''',r'''C:\WINDOWS\Logs\DISM''',r'''C:\WINDOWS\Logs\DPX''',r'''C:\WINDOWS\Logs\MeasuredBoot''',r'''C:\WINDOWS\Logs\MoSetup''',r'''C:\WINDOWS\Logs\NetSetup''',r'''C:\WINDOWS\Logs\SIH''',r'''C:\WINDOWS\Logs\SystemRestore''',r'''C:\WINDOWS\Logs\waasmedic''',r'''C:\WINDOWS\Logs\waasmediccapsule''',r'''C:\WINDOWS\Logs\WindowsUpdate''',r'''C:\WINDOWS\Logs\WinREAgent''',r'''C:\ProgramData\USOShared\Logs\System''',r'''C:\ProgramData\USOShared\Logs\User''',r'''C:\WINDOWS\system32\LogFiles\setupcln\diagerr.xml''',r'''C:\WINDOWS\system32\LogFiles\setupcln\diagwrn.xml''',r'''C:\WINDOWS\system32\LogFiles\setupcln\setupact.log''',r'''C:\WINDOWS\system32\LogFiles\setupcln\setuperr.log''',r'''C:\WINDOWS\system32\LogFiles\WMI\BioEnrollment.etl''',r'''C:\WINDOWS\system32\LogFiles\WMI\FaceTel.etl''',r'''C:\WINDOWS\system32\LogFiles\WMI\FaceUnlock.etl''',r'''C:\WINDOWS\system32\LogFiles\WMI\LwtNetLog.etl''',r'''C:\WINDOWS\system32\LogFiles\WMI\Microsoft-Windows-Rdp-Graphics-RdpIdd-Trace.etl''',r'''C:\WINDOWS\system32\LogFiles\WMI\NetCore.etl''',r'''C:\WINDOWS\system32\LogFiles\WMI\NtfsLog.etl''',r'''C:\WINDOWS\system32\LogFiles\WMI\RadioMgr.etl''',r'''C:\WINDOWS\system32\LogFiles\WMI\ReFSLog.etl''',r'''C:\WINDOWS\system32\LogFiles\WMI\RtBackup''',r'''C:\WINDOWS\system32\LogFiles\WMI\Wifi.etl''',r'''C:\WINDOWS\debug\WIA''',r'''C:\Users\Peter\AppData\Roaming\Tencent\Logs''',r'''C:\Users\Peter\AppData\Roaming\BaiduYunGuanjia\logs''',r'''C:\users\Peter\appdata\local\CrashDumps''']for i, j in del_extension.items():self.del_info[i] = dict(name=j, count=0)def scanf(self):# for i in range(50):for roots, dirs, files in os.walk(USER_PROFILE):for files_item in files:file_extension = os.path.splitext(files_item)[1]if file_extension in self.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'] += 1self.total_size += os.path.getsize(file_full_path)if os.path.isdir(r'C:\Windows.old'):self.del_file_paths.append(r'C:\Windows.old')if os.path.isdir(rf'C:\Users\{getuser()}\AppData\Local\Temp'):for roots, dirs, files in os.walk(rf'C:\Users\{getuser()}\AppData\Local\Temp'):for files_item in files:file_extension = os.path.splitext(files_item)[1]file_full_path = os.path.join(roots, files_item)self.del_file_paths.append(file_full_path)self.del_info['Temps']['count'] += 1for dir_item in dirs:file_full_path = os.path.join(roots, dir_item)self.del_file_paths.append(file_full_path)self.del_info['Temps']['count'] += 1if os.path.isdir(r'C:\WINDOWS\LiveKernelReports\WATCHDOG'):for roots, dirs, files in os.walk(r'C:\WINDOWS\LiveKernelReports\WATCHDOG'):for files_item in files:file_extension = os.path.splitext(files_item)[1]file_full_path = os.path.join(roots, files_item)self.del_file_paths.append(file_full_path)self.del_info['Watch dog']['count'] += 1for dir_item in dirs:file_full_path = os.path.join(roots, dir_item)self.del_file_paths.append(file_full_path)self.del_info['Watch dog']['count'] += 1if os.path.isdir(r'C:\Windows\SoftwareDistribution\Download'):for roots, dirs, files in os.walk(r'C:\Windows\SoftwareDistribution\Download'):for files_item in files:file_extension = os.path.splitext(files_item)[1]file_full_path = os.path.join(roots, files_item)self.del_file_paths.append(file_full_path)self.del_info['upgrade files']['count'] += 1for dir_item in dirs:file_full_path = os.path.join(roots, dir_item)self.del_file_paths.append(file_full_path)self.del_info['upgrade files']['count'] += 1if os.path.isdir(rf'C:\Documents and Settings\{getuser()}\Local Settings\temp'):for roots, dirs, files in os.walk(rf'C:\Documents and Settings\{getuser()}\Local Settings\temp'):for files_item in files:file_extension = os.path.splitext(files_item)[1]file_full_path = os.path.join(roots, files_item)self.del_file_paths.append(file_full_path)self.del_info['Temps']['count'] += 1for dir_item in dirs:file_full_path = os.path.join(roots, dir_item)self.del_file_paths.append(file_full_path)self.del_info['Temps']['count'] += 1if os.path.isdir(r'C:\Windows\Temp'):for roots, dirs, files in os.walk(r'C:\Windows\Temp'):for files_item in files:file_extension = os.path.splitext(files_item)[1]file_full_path = os.path.join(roots, files_item)self.del_file_paths.append(file_full_path)self.del_info['Temps']['count'] += 1for dir_item in dirs:file_full_path = os.path.join(roots, dir_item)self.del_file_paths.append(file_full_path)self.del_info['Temps']['count'] += 1for pop in self.places:self.del_file_paths.append(pop)def show(self):global rrerre = formatSize(self.total_size)for i in self.del_info:print(self.del_info[i]["name"], "共计", self.del_info[i]["count"], "个")print(f'共计{formatSize(self.total_size)}')return rredef delete_files(self):for i in self.del_file_paths:del_dir_or_file(i)@staticmethoddef clean_Recycle_bin():windll.shell32.SHEmptyRecycleBinW()print('empty')if __name__ == "__main__":print("初始化清理垃圾程序")cleaner = DiskClean()print("开始扫描垃圾文件请耐心等待\n")thread1 = threading.Thread(target=f1)thread1.start()cleaner.scanf()tf = Trueprint("\r扫描成功,结果如下")rre = cleaner.show()cleaner.delete_files()ft = input('是否清理回收站?(y/n):')if ft == 'y':DiskClean.clean_Recycle_bin()ft = input('确认退出?(y/n):')if ft == 'y':exit()

抱歉,只能下载v2了。

下载地址:http://t.csdn.cn/9Svoa

python 清理程序相关推荐

  1. python编辑器和终端_从python curses程序运行终端文本编辑器

    我想在python curses程序中使用外部终端文本编辑器和寻呼机.我使用子进程库.在大多数情况下,它工作得很好,除了当我退出文本编辑器时(与nemo和vi相同),我不能再次使光标不可见.另外,在调 ...

  2. 解释python脚本程序的name变量及其作用_一些概念总结

    is 与 == 的区别 Python中万物皆对象,每个对象都包含3个属性:id,type,value.1.id就是对象地址,可以通过内置函数id()查看对象引用的地址.2.type就是对象类型,可以通 ...

  3. 用Python清理收藏夹里已失效的网站,快测试一下你的收藏夹吧

    最近打开好多以前收藏的网站,发现好多都已经失效了,好多以前想看还没来得及看的内容,也找不见了... 失效的书签们 我们日常浏览网站的时候,时不时会遇到些新奇的东西,于是我们就默默的点了个收藏或者加书签 ...

  4. python购物车程序2019_Python实现购物车程序

    本文实例为大家分享了程序:Python购物车程序,具体内容如下 需求: 启动程序后,让用户输入工资,然后打印商品列表 允许用户根据商品编号购买商品 用户选择商品后,检测余额是否够,够就直接扣款,不够就 ...

  5. python 获取程序运行时间

    python 获取程序运行时间 import time # 时间测试 start =time.time() # 运行程序 for i in range(100000000):pass end =tim ...

  6. 《Python 3程序开发指南(第2版•修订版)》——1.2 Python的关键要素

    本节书摘来自异步社区<Python 3程序开发指南(第2版•修订版)>一书中的第1章,第1.2节,作者[英]Mark Summerfield,王弘博,孙传庆 译,更多章节内容可以访问云栖社 ...

  7. spark指定python版本_如何将正常的Python应用程序正确转换为PySpark版本

    我是PySpark的初学者,最近我尝试向我的Spark集群提交一个简单的python应用程序(批量调整大小图片).我可以成功地通过pycharm运行该应用程序,并且当我将应用程序提交给spark时,图 ...

  8. python语言包含的错误,Python语言程序中包含的错误,一般分为三种,以下____________不是其中的一种...

    Python语言程序中包含的错误,一般分为三种,以下____________不是其中的一种 答:编译错误 人体体温能自动调控在37度,其原因是( ). 答:人体内产生的热能是分批放出的 人体内有完善的 ...

  9. C++/Php/Python/Shell 程序按行读取文件或者控制台方法总结。

    C++/Php/Python/Shell 程序按行读取文件或者控制台方法总结. 一.总结 C++/Php/Python/Shell 程序按行读取文件或者控制台(php读取标准输入:$fp = fope ...

最新文章

  1. Z-STACK的一些小内容
  2. 200+猫在线待撸!来pick你最爱的那只!
  3. sql获取oracle数据库数据,通过sql语句获取数据库的基本信息
  4. python操作memcahed
  5. @excel注解_Excel导入导出Java解决方案推荐
  6. Java判断一个整数是否为水仙花数
  7. C程序设计语言现代方法15:编写大型程序
  8. 使用WMI筛选器管理组策略应用
  9. 【转】世界顶级人工智能会议的总结
  10. mysql double 和Oracle,oraclemysql对比
  11. PMP项目管理学习心得分享
  12. hutool常用方法,工具类
  13. excel锁定前几行,无法选择和编辑
  14. html编辑中,出现报错 semi-.colon excepted css(………)
  15. 查看浏览器Browsers的内核版本, 可以用 navigator.userAgent
  16. win10系统更新服务器太慢了,win10更新慢如何解决
  17. 头牌知产介绍速冻水饺商标属于哪一类
  18. 基于Html+Css+javascript的网页制作(旅游主题)
  19. ## 使用strongswan和xl2tpd配置l2tp over ipsec和Xauth
  20. 游戏测试的工作(来自网络)

热门文章

  1. 【飞思卡尔 MC9S12】BootLoader 下位机
  2. Matlab转矩控制设计,基于MatlabSimulink设计的直接转矩控制系统仿真.pdf
  3. 计算机整体工作计划,计算机教学工作计划范文
  4. Pytorch的nn.DataParallel详细解析
  5. 千锋教育嵌入式物联网教程之系统编程篇学习-01
  6. UVM objection机制
  7. 管网管理GIS服务平台有何功能?
  8. 常用的JAVA设计模式
  9. Java交互界面实现计算器开发设计【附函数源码】,java反射原理hash
  10. python打包成exe导入文件_Pyinstaller(python打包为exe文件)