当前位置:首页>python>用Python造个自用的文件自动整理工具(UI版)

用Python造个自用的文件自动整理工具(UI版)

  • 2026-10-11 06:10:20
用Python造个自用的文件自动整理工具(UI版)

🏗️ 造个工具 · 第1篇

这篇文章记录了我把一个命令行文件整理器升级成带界面的桌面应用的过程,包括用 uv 管理依赖、打包流程,以及最后开源。

之前做的文件整理工具是命令行脚本,运行时需要在终端切换目录、输入命令参数。今天把它升级成一个桌面应用:

  • 图形界面应用
  • 拖拽或浏览选择文件夹
  • 实时进度和整理日志
  • 一键撤销上一次整理
  • 支持打包成可执行文件

目标是让一个“自用工具”变成“普通人也能用”的桌面程序。

FileTidy 项目结构

当前整个项目结构如下:

FileTidy/├── .venv/              # uv 虚拟环境├── pyproject.toml      # 项目配置与依赖声明├── README.md           # 项目说明文档├── LICENSE             # MIT 开源许可证├── OPEN_SOURCE.md      # 开源说明文档├── tests/              # Pytest 单元测试├── ui_app.py           # UI 入口与主要实现└── uv.lock             # 依赖锁定文件

其中最核心的是 ui_app.py,它负责:

  • 构建 PySide6 界面
  • 选择文件夹
  • 按规则迁移文件
  • 显示进度与日志
  • 保存移动日志
  • 支持撤销整理操作

主要功能

1. 拖拽 / 浏览选择文件夹

不需要手工写路径,直接拖一个目录到窗口,即可开始整理。

2. 三种整理模式

  • 按扩展名分类
  • 按日期归档(年/月)
  • 按文件大小分类

这三个模式可以单独启用,也可以组合使用。

3. 仅整理顶层文件

当前版本只会整理所选目录中的顶层文件,不会遍历子目录中的文件。

4. 实时进度与日志

整理过程会更新进度条,并在日志区打印每个文件的处理结果。

5. 一键撤销

整理完成后会生成 organize_log.json,记录每个文件的移动路径。点击“撤销”后,程序会按记录反向移动文件,恢复整理前状态。

UI 设计预览

这是当前界面的核心布局:

这张图展示了程序核心结构:选择目录、整理模式、操作按钮、进度与日志。

安装和运行

本项目推荐使用 uv 管理依赖和虚拟环境。

git clone https://github.com/ICodeWR/FileTidycd FileTidyuv venv .venvuv pip install --python .venv\Scripts\python.exe -e . --index-url https://pypi.tuna.tsinghua.edu.cn/simple

安装完成后运行程序:

.venv\Scripts\python.exe ui_app.py

或者:

.venv\Scripts\python.exe -m ui_app

如果你只想快速运行而不安装全部依赖:

uv pip install --python .venv\Scripts\python.exe pyside6

打包成可执行文件

打包前先安装 PyInstaller:

uv pip install --python .venv\Scripts\python.exe pyinstaller

然后执行:

cd d:\OfficialAccount\FileTidy.venv\Scripts\python.exe -m PyInstaller --onefile --windowed --name "文件整理工具" ui_app.py

打包完成后,你会在 dist/ 目录下得到 文件整理工具.exe,直接双击即可运行。

测试覆盖与质量保证

项目已添加 Pytest 单元测试,放在:

  • tests/test_ui_logic.py

运行方式:

.venv\Scripts\python.exe -m pytest -q tests

当前测试覆盖了程序的核心逻辑,包括分类规则、递归文件收集、大小分类和撤销行为。

开源许可与版权说明

FileTidy 使用 MIT License 开源,版权归属:2026 码上工坊。

这意味着你可以:

  • 自由使用项目
  • 修改源码
  • 分发项目
  • 商业化使用

但请保留原始版权信息和许可证文件。

本项目还包括了:

  • LICENSE:开源许可证文本
  • OPEN_SOURCE.md:开源说明文件
  • README.md:项目说明文档

写在最后

这次迭代把一个基础命令行工具升级为更易用的桌面应用,目标是让整理文件这件事变得更简单。

如果你也想把自己的 Python 工具做成可分享的桌面程序,FileTidy 这个项目可以当成一个参考模板:

  • 使用 PySide6 做界面
  • 使用 uv 管理依赖
  • 用 PyInstaller 打包成 exe
  • 设计一个可撤销的“整理”逻辑

后续我会继续把这个项目补充成一个完整的发布版,包括更多整理规则、配置文件和界面优化。



作者简介:码上工坊,探索用编程为己赋能,定期分享编程知识和项目实战经验。持续学习、适应变化、记录点滴、复盘反思、成长进步。

重要提示:本文主要是记录自己的学习与实践过程,所提内容或者观点仅代表个人意见,只是我以为的,不代表完全正确,欢迎交流讨论。

最新文章

随机文章