垃圾清理软件源码

垃圾清理软件源码

最近闲着无聊,打开家里的笔记本电脑,发现卡的要死。
于是乎,就自己用Python写了一个垃圾清理软件。
开源是一种美德,我要开源。 dog
好了,不扯了,上代码:

import sys,os,easygui,datetime
logs=open('log.txt','w+',encoding='UTF-8')
a=open('dism.ini', 'r',encoding='UTF-8')
dism=a.read()
a.close()
easygui.msgbox(dism)
b=open('dism2.ini', 'r',encoding='UTF-8')
dism2=b.read()
b.close()
easygui.msgbox(dism2)
ask=easygui.enterbox('你是否同意(y/n;Y/N):')
if ask == 'n' or ask == 'N' or ask==None or ask=='':
    logs.write(str(datetime.datetime.now())+':'+'OOPS!You exit it!'+'\n')
    logs.close()
    sys.exit(1)
logs.write(str(datetime.datetime.now())+':'+'OK!'+'\n')
msg = "你想清理什么?"
title = "主界面"
af = ["清理系统超过一个月的日志文件 和 文件 文件夹", "清理系统垃圾"]

A = easygui.choicebox(msg, title, af)
logs.write(str(datetime.datetime.now())+':'+str(A)+'\n')
if str(A)=="清理系统超过一个月的日志文件 和 文件 文件夹":



    def printToFile(filename, msg):
        fd = open(filename, "a")
        fd.write("\n" + msg + "\n")
        fd.close()


    def main():
        log_file = "log.txt"

        printToFile(log_file, "Files Deleted on: /mnt/builds_mobile/buildbrain/automatic")
        findCmd = "find /mnt/builds_mobile/buildbrain/automatic -type f \( ! -iname '*.xml' \) -mtime +25 | xargs rm -rfv >> %s" % (
            log_file)
        os.system(findCmd)

        printToFile(log_file, "Files Deleted on: /mnt/builds_mobile/buildbrain/ondemand")
        findCmd = "find /mnt/builds_mobile/buildbrain/ondemand -type f \( ! -iname '*.xml' \) -mtime +25 | xargs rm -rfv >> %s" % (
            log_file)
        os.system(findCmd)

        printToFile(log_file, "Files Deleted on: /mnt/builds_mobile/buildbrain/virtual")
        findCmd = "find /mnt/builds_mobile/buildbrain/virtual -type f \( ! -iname '*.xml' \) -mtime +5 | xargs rm -rfv >> %s" % (
            log_file)
        os.system(findCmd)

        # Delete XML files after 60 days

        findCmd = "find /mnt/builds_mobile/buildbrain/automatic -type f  -mtime +60 | xargs rm -rfv >> %s" % (log_file)
        os.system(findCmd)

        findCmd = "find /mnt/builds_mobile/buildbrain/ondemand -type f  -mtime +60 | xargs rm -rfv >> %s" % (log_file)
        os.system(findCmd)

        findCmd = "find /mnt/builds_mobile/buildbrain/virtual -type f  -mtime +60 | xargs rm -rfv >> %s" % (log_file)
        os.system(findCmd)

        # to delete the logs older than 25 days older
        printToFile(log_file, "Files Deleted on: /mnt/qvslogs/")
        findCmd = "find /mnt/qvslogs/ -type f -mtime +25 | xargs rm -rfv >> %s" % (log_file)
        os.system(findCmd)

        printToFile(log_file, "Deleting EMPTY directories.")
        findCmd = "find /mnt/builds_mobile/buildbrain/automatic -type d -empty | xargs rm -rfv >> %s" % (log_file)
        os.system(findCmd)

        findCmd = "find /mnt/builds_mobile/buildbrain/ondemand -type d -empty | xargs rm -rfv >> %s" % (log_file)
        os.system(findCmd)

        findCmd = "find /mnt/builds_mobile/buildbrain/virtual -type d -empty | xargs rm -rfv >> %s" % (log_file)
        os.system(findCmd)

        findCmd = "find /mnt/qvslogs/ -type d -empty | xargs rm -rfv >> %s" % (log_file)
        os.system(findCmd)

        findCmd = "find /mnt/builds_mobile_public/AutosanDetails/ -type d -empty | xargs rm -rfv >> %s" % (log_file)
        os.system(findCmd)

        # Remove files with 0 size from /mnt/builds_mobile/AutosanDetails
        printToFile(log_file, "Deleting files with ZERO size.")
        findCmd = "find /mnt/builds_mobile/AutosanDetails/ -type f -size 0| xargs rm -rfv >> %s" % (log_file)
        os.system(findCmd)

        findCmd = "find /mnt/builds_mobile_public/AutosanDetails/ -type f -size 0| xargs rm -rfv >> %s" % (log_file)
        os.system(findCmd)

        # Remove files older than 3 months from /mnt/builds_mobile/AutosanDetails
        printToFile(log_file, "Files Deleted on: /mnt/builds_mobile/AutosanDetails")
        findCmd = "find /mnt/builds_mobile/AutosanDetails/ -type f -mtime +90| xargs rm -rfv >> %s" % (log_file)
        os.system(findCmd)

        # Remove files older than 3 months from /mnt/builds_mobile_public/AutosanDetails/
        printToFile(log_file, "Files Deleted on: /mnt/builds_mobile_public/AutosanDetails/")
        findCmd = "find /mnt/builds_mobile_public/AutosanDetails/ -type f -mtime +90| xargs rm -rfv >> %s" % (log_file)
        os.system(findCmd)


    if (__name__ == "__main__"):
        main()
    logs.write('\n')
elif str(A)=="清理系统垃圾":

    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)
                logs.write(str(i) + '\n')


    if __name__ == "__main__":
        print("初始化清理垃圾程序")
        cleaner = DiskClean()
        print("开始扫描垃圾文件请耐心等待\n")
        cleaner.scanf()
        print("扫描成功,结果如下")
        re = cleaner.show()
        cleaner.delete_files()
easygui.msgbox('OK!')
logs.close()

dism.ini和dism2.ini的内容是:

法律资料

log.txt的内容是:

日志

注意:

我是在Python3.9.1中写的,注意版本差异!

好了,我要去干别的事了,有事评论区见

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值