用Python自动清理系统垃圾的实现


Posted in Python onJanuary 18, 2021

用Python自动清理系统垃圾,再也不用360安全卫士了

在Windows在安装和使用过程中都会产生相当多的垃圾文件,包括临时文件(如:.tmp、._mp)日志文件(.log)、临时帮助文件(.gid)、磁盘检查文件(.chk)、临时备份文件(如:.old、*.bak)以及其他临时文件。特别是如果一段时间不清理IE的临时文件夹“Temporary Internet Files”,其中的缓存文件有时会占用上百MB的磁盘空间。这些LJ文件不仅仅浪费了宝贵的磁盘空间,严重时还会使系统运行慢如蜗牛。

用Python自动清理系统垃圾的实现

清理电脑垃圾最常用的是360安全卫士,看着清理完成,释放了N个GB的空间,别提多舒适了。 但是作为Pythoneer自然要玩点不一样的,我向大家介绍一种利用任务计划执行py脚本实现自动清理电脑垃圾的方法,感兴趣的同学可以试试。

同学们不要太较真哈,本文介绍的方法肯定不能跟360媲美,很早之前网上有个清除垃圾的.bat文件也能清理电脑垃圾文件。
本文主要目的是换一种姿势学习Python的os模块。

一、清理目标

系统盘 %system% 下文件类型:

【临时文件(*.tmp)】
【临时文件(*._mp)】
【日志文件(*.log)】
【临时帮助文件(*.gid)】
【磁盘检查文件(*.chk)】
【临时备份文件(*.old)】
【Excel备份文件(*.xlk)】
【临时备份文件(*.bak)】

用户目录 %userprofile% 下文件夹

【COOKIE】 cookies\*.*
【文件使用记录】 recent\*.*
【IE临时文件】 Temporary Internet Files\*.*
【临时文件文件夹】 Temp\*.*.

Windows 目录 %windir% 下文件夹

【预读取数据文件夹】 prefetch\*.*
【临时文件】 temp\*.*

Python os

Python os 模块提供了非常丰富的方法用来处理文件和目录,它会自适应于不同的操作系统平台,根据不同的平台进行相应的操作,在python编程时,经常和文件、目录打交道,这时就离不了os模块。
具体就不过多介绍,大家可以看一下官方文档,也没必要细究,用到哪个知道怎么查就行了。

https://docs.python.org/zh-cn/3/library/os.html

Python脚本

造轮子不如站在巨人的肩膀上,发现已经有博主写过了,不过是用Python2编写的,print的地方改一下就行了。

用Python自动清理系统垃圾的实现

import os
del_extension = {
  '.tmp': '临时文件',
  '._mp': '临时文件_mp',
  '.log': '日志文件',
  '.gid': '临时帮助文件',
  '.chk': '磁盘检查文件',
  '.old': '临时备份文件',
  '.xlk': 'Excel备份文件',
  '.bak': '临时备份文件bak'
}
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']

def del_dir_or_file(root):
  try:
    if os.path.isfile(root):
      os.remove(root)
      print ("file",root,"removed")
    elif os.path.isdir(root):
      os.rmdir(root)
      print("dir",root,"removed")

  except WindowsError:
    print("failure",root,"can't remove")

def formatSize(b):
  try:
    kb = b // 1024
  except:
    print("传入字节格式不对")
    return "Error"
  if kb > 1024:
    M = kb // 1024
    if M > 1024:
      G = M // 1024
      return "%dG" % G
    else:
      return "%dM" % M
  else:
    return "%dkb" % kb

class DiskClean(object):
  def __init__(self):
    self.del_info = {}
    self.del_file_paths = []
    self.total_size = 0
    for i,j in del_extension.items():
      self.del_info[i] = dict(name = j,count = 0 )

  def scanf(self):
    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'] += 1
          self.total_size += os.path.getsize(file_full_path)

  def show(self):
    re = formatSize(self.total_size)
    for i in self.del_info:
      print(self.del_info[i]["name"],"共计",self.del_info[i]["count"],"个")
    return re

  def delete_files(self):
    for i in self.del_file_paths:
      print(i)
      del_dir_or_file(i)
if __name__ == "__main__":
  print("初始化清理垃圾程序")
  cleaner = DiskClean()
  print("开始扫描垃圾文件请耐心等待\n")
  cleaner.scanf()
  print("扫描成功,结果如下")
  re = cleaner.show()
  cleaner.delete_files()

调通之后另存为kill360.py,保存到python的工作目录,不知道工作目录可以运行os.getcwd()查看。
另外还需要确保python的安装目录已添加到path系统变量中,方法:在电脑中,右键打开 我的电脑(此电脑)\属性\高级系统设置\环境变量

用Python自动清理系统垃圾的实现

cmd打开命令行输入 python 命令,如下图即成功:

用Python自动清理系统垃圾的实现

然后新建一个kill360.bat文件,输入一下内容:

python clean.py

将其和.py文件一起放到工作目录下

用Python自动清理系统垃圾的实现

然后打开任务计划程序

用Python自动清理系统垃圾的实现

创建任务及配置过程

用Python自动清理系统垃圾的实现

用Python自动清理系统垃圾的实现

用Python自动清理系统垃圾的实现

然后,就高枕无忧了。

到此这篇关于用Python自动清理系统垃圾的实现的文章就介绍到这了,更多相关Python自动清理系统垃圾内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python根据出生日期获得年龄的方法
Mar 31 Python
用pandas中的DataFrame时选取行或列的方法
Jul 11 Python
PyQt5实现五子棋游戏(人机对弈)
Mar 24 Python
Python中字符串String的基本内置函数与过滤字符模块函数的基本用法
May 27 Python
python字符串,元组,列表,字典互转代码实例详解
Feb 14 Python
python实现猜拳游戏
Mar 04 Python
django为Form生成的label标签添加class方式
May 20 Python
python获取系统内存占用信息的实例方法
Jul 17 Python
Python调用C/C++的方法解析
Aug 05 Python
pycharm专业版远程登录服务器的详细教程
Sep 15 Python
python中K-means算法基础知识点
Jan 25 Python
pycharm最新激活码有效期至2100年(亲测可用)
Feb 05 Python
详解Python爬虫爬取博客园问题列表所有的问题
Jan 18 #Python
python爬虫爬取图片的简单代码
Jan 18 #Python
python中用Scrapy实现定时爬虫的实例讲解
Jan 18 #Python
java关于string最常出现的面试题整理
Jan 18 #Python
python爬虫实现爬取同一个网站的多页数据的实例讲解
Jan 18 #Python
python中四舍五入的正确打开方式
Jan 18 #Python
PyQt5中QSpinBox计数器的实现
Jan 18 #Python
You might like
phpcms手机内容页面添加上一篇和下一篇
2015/06/05 PHP
使用PHP处理数据库数据如何将数据返回客户端并显示当前状态
2016/02/16 PHP
PHP基于面向对象封装的分页类示例
2019/03/15 PHP
解决PHP使用CURL发送GET请求时传递参数的问题
2019/10/11 PHP
Android中资源文件(非代码部分)的使用概览
2012/12/18 Javascript
jquery的ajaxSubmit()异步上传图片并保存表单数据演示代码
2013/06/04 Javascript
JavaScript中一个奇葩的IE浏览器判断方法
2014/04/16 Javascript
使用jquery prev()方法找到同级的前一个元素
2014/07/11 Javascript
jquery+html5烂漫爱心表白动画代码分享
2015/08/24 Javascript
jquery简单实现带渐显效果的选项卡菜单代码
2015/09/01 Javascript
js实现滚动条滚动到某个位置便自动定位某个tr
2021/01/20 Javascript
设计模式中的facade外观模式在JavaScript开发中的运用
2016/05/18 Javascript
Spring MVC中Ajax实现二级联动的简单实例
2016/07/06 Javascript
使用layui 渲染table数据表格的实例代码
2018/08/19 Javascript
Vuex 在Vue 组件中获得Vuex 状态state的方法
2018/08/27 Javascript
vue单页缓存存在的问题及解决方案(小结)
2018/09/25 Javascript
JS Math对象与Math方法实例小结
2019/07/05 Javascript
layui自定义验证,用ajax查询后台是否有重复数据,form.verify的例子
2019/09/06 Javascript
JavaScript 中的六种循环方法
2021/01/06 Javascript
Python实现批量修改文件名实例
2015/07/08 Python
Python Requests 基础入门
2016/04/07 Python
python 添加用户设置密码并发邮件给root用户
2016/07/25 Python
基于Python闭包及其作用域详解
2017/08/28 Python
python最长回文串算法
2018/06/04 Python
浅谈python下tiff图像的读取和保存方法
2018/12/04 Python
python读取csv和txt数据转换成向量的实例
2019/02/12 Python
基于pandas中expand的作用详解
2019/12/17 Python
Python class的继承方法代码实例
2020/02/14 Python
Anaconda和ipython环境适配的实现
2020/04/22 Python
css3选择器基本介绍
2014/12/15 HTML / CSS
学生党员思想汇报范文
2014/01/09 职场文书
幼儿园教师备课制度
2014/01/12 职场文书
查摆剖析材料范文
2014/09/30 职场文书
公务员个人考察材料
2014/12/23 职场文书
应急管理工作总结2015
2015/05/04 职场文书
2015年护士节活动策划方案
2015/05/04 职场文书