search
HomeBackend DevelopmentPython TutorialHow to write a C drive garbage cleaning tool in Python

关于python的文件清理操作,实际上我们使用标准模块os即可满足所有的文件操作。

一般在C盘的清理过程中,我们能够清理的文件类型主要如下:

'''
'.tmp': '临时文件',
    '._mp': '临时文件_mp',
    '.log': '日志文件',
    '.gid': '临时帮助文件',
    '.chk': '磁盘检查文件',
    '.old': '临时备份文件',
    '.xlk': 'Excel备份文件',
    '.bak': '临时备份文件bak'
'''

既然已经知道了需要清理的文件类型,那实现思路就是将这些文件找出来后删除掉即可。

将我们接下来代码块中使用到的os标准模块直接导入到代码块中。

# Importing the os module.
import os

现在可以将一些全局变量首先定义好,比如全局的系统操作路径、待清理的文件后缀名等等。

# 待清理的文件后缀名称
suffix_dict = {
    '.tmp': '临时文件',
    '._mp': '临时文件_mp',
    '.log': '日志文件',
    '.gid': '临时帮助文件',
    '.chk': '磁盘检查文件',
    '.old': '临时备份文件',
    '.xlk': 'Excel备份文件',
    '.bak': '临时备份文件bak'
}

# 用户缓存数据类型名称
user_profile_list = [
    'cookies', 'recent', 'Temporary Internet Files', 'Temp'
]

# windows系统路径文件类型
windir_list = [
    'prefetch', 'temp'
]

# 系统驱动路径
sys_drive = os.environ['systemdrive'] + '\\'

# 用户缓存路径
user_profile = os.environ['userprofile']

# windows系统路径
win_dir = os.environ['windir']

以上相关的C盘清理的全局变量已经设置完成了,接下来我们创建一个ClaenFilesUtil的类来完成对文件清理的业务操作过程。

# This class is used to clean up files in a directory
class CleanFilesUtil():
    def __init__(self):
        """
        A constructor. It is called when an object is created from a class and it allows the class to initialize the
        attributes of a class.
        """
        self.del_info = {}
        self.del_file_paths = []
        self.total_size = 0
        for suffix_name, comment in suffix_dict.items():
            self.del_info[suffix_name] = dict(name=comment, count=0)

    def scanf_files(self):
        """
        It takes a list of files, and returns a list of lists of the lines in each file
        """
        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_count_message(self):
        """
        It prints the number of messages in the inbox.
        """
        byte = self.format_size(self.total_size)
        for i in self.del_info:
            print(self.del_info[i]["name"], "共计", self.del_info[i]["count"], "个")
        return byte

    def format_size(self, byte):
        """
        It takes a number of bytes and returns a string with the number of bytes, kilobytes, megabytes, or gigabytes,
        depending on the size

        :param byte: The size in bytes
        """
        try:
            kb = byte // 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

    def remove_file_or_dir(self):
        """
        > This function removes a file or directory
        """
        for full_path_one in self.del_file_paths:
            try:
                if os.path.isfile(full_path_one):
                    os.remove(full_path_one)
                    print("文件:", full_path_one, "已移除")
                elif os.path.isdir(full_path_one):
                    os.rmdir(full_path_one)
                    print("文件夹", full_path_one, "已移除")

            except WindowsError:
                print("错误:", full_path_one, "不能被移除")


if __name__ == "__main__":
    print("开始初始化C盘清理程序")
    clean_ = CleanFilesUtil()
    print('C盘清理程序初始化完成')
    print("开始扫描所有待清理文件路径")
    clean_.scanf_files()
    print("完成所有待清理文件路径扫描")
    print("扫描完成以下是需要待清理的文件路径:")
    clean_.show_count_message()
    print("开始执行C盘垃圾文件删除")
    clean_.remove_file_or_dir()
    print("所有C盘垃圾文件已清理完成")
    input("输入任意键关闭窗口...")

于是,我想到了前几天发布的文章[python不要再使用while死循环,使用定时器代替效果更佳!],可以通过定时器的方式来满足业务要求。

除了使用代码块来完成定时还可以通过配置windows或其他操作系统的定时任务来完成定时执行的需求。

How to write a C drive garbage cleaning tool in Python

The above is the detailed content of How to write a C drive garbage cleaning tool in Python. For more information, please follow other related articles on the PHP Chinese website!

Statement
This article is reproduced at:亿速云. If there is any infringement, please contact admin@php.cn delete
详细讲解Python之Seaborn(数据可视化)详细讲解Python之Seaborn(数据可视化)Apr 21, 2022 pm 06:08 PM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于Seaborn的相关问题,包括了数据可视化处理的散点图、折线图、条形图等等内容,下面一起来看一下,希望对大家有帮助。

详细了解Python进程池与进程锁详细了解Python进程池与进程锁May 10, 2022 pm 06:11 PM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于进程池与进程锁的相关问题,包括进程池的创建模块,进程池函数等等内容,下面一起来看一下,希望对大家有帮助。

Python自动化实践之筛选简历Python自动化实践之筛选简历Jun 07, 2022 pm 06:59 PM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于简历筛选的相关问题,包括了定义 ReadDoc 类用以读取 word 文件以及定义 search_word 函数用以筛选的相关内容,下面一起来看一下,希望对大家有帮助。

归纳总结Python标准库归纳总结Python标准库May 03, 2022 am 09:00 AM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于标准库总结的相关问题,下面一起来看一下,希望对大家有帮助。

Python数据类型详解之字符串、数字Python数据类型详解之字符串、数字Apr 27, 2022 pm 07:27 PM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于数据类型之字符串、数字的相关问题,下面一起来看一下,希望对大家有帮助。

分享10款高效的VSCode插件,总有一款能够惊艳到你!!分享10款高效的VSCode插件,总有一款能够惊艳到你!!Mar 09, 2021 am 10:15 AM

VS Code的确是一款非常热门、有强大用户基础的一款开发工具。本文给大家介绍一下10款高效、好用的插件,能够让原本单薄的VS Code如虎添翼,开发效率顿时提升到一个新的阶段。

详细介绍python的numpy模块详细介绍python的numpy模块May 19, 2022 am 11:43 AM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于numpy模块的相关问题,Numpy是Numerical Python extensions的缩写,字面意思是Python数值计算扩展,下面一起来看一下,希望对大家有帮助。

python中文是什么意思python中文是什么意思Jun 24, 2019 pm 02:22 PM

pythn的中文意思是巨蟒、蟒蛇。1989年圣诞节期间,Guido van Rossum在家闲的没事干,为了跟朋友庆祝圣诞节,决定发明一种全新的脚本语言。他很喜欢一个肥皂剧叫Monty Python,所以便把这门语言叫做python。

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

DVWA

DVWA

Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

SecLists

SecLists

SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.