zoukankan      html  css  js  c++  java
  • 用Python自动清理系统垃圾,再也不用360安全卫士了

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

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

    清理电脑垃圾最常用的是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的地方改一下就行了。

    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("开始扫描垃圾文件请耐心等待
    ")
        cleaner.scanf()
        print("扫描成功,结果如下")
        re = cleaner.show()
        cleaner.delete_files()
    

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

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

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

    python clean.py
    

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

    然后打开任务计划程序

    创建任务及配置过程

    然后,就高枕无忧了。

  • 相关阅读:
    Java中抽象类和接口的区别
    servlet的转发与重定向
    JSP知识点
    过滤器与拦截器
    java关键字 super 和 this
    oracle 基础
    java 集合
    java 内部类
    java 数组详解
    图,深度优先遍历与广度优先遍历
  • 原文地址:https://www.cnblogs.com/jpld/p/14125267.html
Copyright © 2011-2022 走看看