Используйте Python для автоматической очистки системного мусора, не более 360 охранников

Python

Используйте Python для автоматической очистки системного мусора, не более 360 охранников

В процессе установки и использования Windows генерируется довольно много ненужных файлов, в том числе и временных (таких как:.tmp,._mp) файл журнала (.log), временные файлы справки (.gid), файл проверки диска (.chk), файлы временных резервных копий (такие как:.old, *.bak) и другие временные файлы. Особенно, если временная папка «Временные файлы Интернета» IE не очищается в течение определенного периода времени, кэшированные файлы иногда занимают сотни МБ дискового пространства. Эти LJ-файлы не только тратят драгоценное место на диске, но и могут в тяжелых случаях замедлять работу системы.360 Security Guard чаще всего используется для очистки компьютера от мусора.После завершения очистки освобождается N ГБ места, не говоря уже о том, насколько это удобно. Но как Pythoneer, естественно играть во что-то другое. Я хотел бы представить метод автоматической очистки компьютера от мусора путем выполнения скриптов py с использованием плана задач. Заинтересованные студенты могут попробовать его.

Студенты, не будьте слишком серьезными, метод, представленный в этой статье, определенно не сравним с 360. Давным-давно в Интернете был файл .bat, который может очищать компьютерные ненужные файлы. Основная цель этой статьи — изменить позицию для изучения модуля os Python.

1. Очистить цель

Типы файлов на системном диске %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 предоставляет очень богатый метод обработки файлов и каталогов. Он адаптируется к различным платформам операционных систем и выполняет соответствующие операции в соответствии с различными платформами. При программировании на python он часто имеет дело с файлами и каталогами. В настоящее время неотделим от модуль ОС.
Не буду вводить слишком подробно.Вы можете посмотреть официальные документы,и нет необходимости их внимательно изучать.Достаточно знать какой из них используется и как это проверить.

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

Скрипт Python

Лучше строить колеса, чем стоять на плечах гигантов, и обнаружить, что это уже написали блогеры, но это написано на Python2, только поменяйте место печати.

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.Метод: Щелкните правой кнопкой мыши на компьютере, чтобы открыть Мой компьютер (этот компьютер)\Свойства\Дополнительные параметры системы\Переменные среды

cmd откройте командную строку и введите команду python, как показано на следующем рисунке, она прошла успешно:

Затем создайте новый файл kill360.bat и введите следующее содержимое:

python clean.py

Поместите его в рабочий каталог вместе с файлом .py.

Затем откройте планировщик заданий

Создавайте задачи и настраивайте процесс

Затем сядьте поудобнее и расслабьтесь.