page contents

Python入门实战:30分钟开发实用小工具,太强了!

今天给各位分享一个特别实用的Python入门项目 - 文件整理助手。很多小伙伴的电脑桌面都是各种文件乱糟糟的,今天我们就用Python来解决这个问题!

attachments-2025-02-bGKHCpsu67b28e0291853.png今天给各位分享一个特别实用的Python入门项目 - 文件整理助手。很多小伙伴的电脑桌面都是各种文件乱糟糟的,今天我们就用Python来解决这个问题!

为什么选择这个项目?

代码量小,适合初学者

能立即解决实际问题

涉及Python核心知识点

可以根据需求自由扩展功能

项目演示

我们要实现的功能很简单:

监控指定文件夹(比如桌面)

自动将不同类型的文件移动到对应的文件夹

支持图片、文档、音乐等多种文件类型

举个栗子:当你下载了一张图片到桌面,程序会自动将它移动到"图片"文件夹。就是这么简单!

核心代码实现

首先,我们需要导入必要的模块:

import os

import shutil

from time import sleep

from watchdog.observers import Observer

from watchdog.events import FileSystemEventHandler


# 定义文件类型和对应的文件夹

DIRECTORIES = {

    "图片": [".jpg", ".jpeg", ".png", ".gif"],

    "文档": [".pdf", ".doc", ".docx", ".txt"],

    "音乐": [".mp3", ".wav", ".flac"],

    "视频": [".mp4", ".avi", ".mkv"]

}


class FileHandler(FileSystemEventHandler):

    def on_created(self, event):

        if event.is_directory:

            return

            

        file_path = event.src_path

        file_extension = os.path.splitext(file_path)[1].lower()

        

        # 查找文件对应的目标文件夹

        for directory, extensions in DIRECTORIES.items():

            if file_extension in extensions:

                destination = os.path.join(os.path.dirname(file_path), directory)

                

                # 如果目标文件夹不存在,创建它

                if not os.path.exists(destination):

                    os.makedirs(destination)

                    

                # 移动文件

                try:

                    shutil.move(file_path, os.path.join(destination, os.path.basename(file_path)))

                    print(f"已将{os.path.basename(file_path)}移动到{directory}文件夹")

                except Exception as e:

                    print(f"移动文件时出错:{e}")

                break


def start_monitoring(path):

    event_handler = FileHandler()

    observer = Observer()

    observer.schedule(event_handler, path, recursive=False)

    observer.start()

    

    try:

        print(f"开始监控文件夹:{path}")

        while True:

            sleep(1)

    except KeyboardInterrupt:

        observer.stop()

        print("监控已停止")

    

    observer.join()


# 运行程序

if __name__ == "__main__":

    # 替换为你想监控的文件夹路径

    MONITOR_PATH = os.path.expanduser("~/Desktop")

    start_monitoring(MONITOR_PATH)代码详解

让我们一步步解析这段代码:

导入必要模块

os:用于文件和路径操作

shutil:用于文件移动

watchdog:用于监控文件夹变化

定义文件类型

使用字典将文件扩展名和目标文件夹对应起来

可以根据需要自由添加更多类型

创建文件处理器

继承FileSystemEventHandler类

重写on_created方法来处理新文件

实现文件移动逻辑

检测文件类型

创建目标文件夹(如果不存在)

移动文件到对应文件夹

启动文件监控

创建观察者对象

开始监控指定文件夹

保持程序运行直到手动停止

运行效果

运行程序后,它会自动监控你的桌面文件夹。当有新文件出现时,会立即将其分类整理到对应文件夹。

比如下载了一张图片test.jpg,控制台会显示:

开始监控文件夹:C:\Users\用户名\Desktop

已将test.jpg移动到图片文件夹进阶改造

想要让程序更强大?试试这些改进方案:

添加更多文件类型

DIRECTORIES["压缩包"] = [".zip", ".rar", ".7z"]

DIRECTORIES["程序"] = [".exe", ".msi"]自定义目标路径

CUSTOM_PATHS = {

    "图片": "D:/我的图片",

    "文档": "D:/我的文档"

}添加文件重名处理

def get_unique_path(destination, filename):

    base, extension = os.path.splitext(filename)

    counter = 1

    while os.path.exists(os.path.join(destination, filename)):

        filename = f"{base}_{counter}{extension}"

        counter += 1

    return os.path.join(destination, filename)总结

这个小工具虽然代码不多,但涵盖了很多Python重要知识点:

文件操作

事件处理

异常处理

面向对象编程

字典的使用

最重要的是,它能真正解决我们的实际问题!

学习编程最重要的是实践。从小工具开始,慢慢提升自己的编程能力。如果你对这个项目感兴趣,赶紧动手试试吧!

更多相关技术内容咨询欢迎前往并持续关注好学星城论坛了解详情。

想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2022-05-rLS4AIF8628ee5f3b7e12.jpg

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
小柒
小柒

1734 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1734 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章