🏗️ 造个工具 · 第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,它负责:
主要功能
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 单元测试,放在:
运行方式:
.venv\Scripts\python.exe -m pytest -q tests
当前测试覆盖了程序的核心逻辑,包括分类规则、递归文件收集、大小分类和撤销行为。
开源许可与版权说明
FileTidy 使用 MIT License 开源,版权归属:2026 码上工坊。
这意味着你可以:
但请保留原始版权信息和许可证文件。
本项目还包括了:
写在最后
这次迭代把一个基础命令行工具升级为更易用的桌面应用,目标是让整理文件这件事变得更简单。
如果你也想把自己的 Python 工具做成可分享的桌面程序,FileTidy 这个项目可以当成一个参考模板:
后续我会继续把这个项目补充成一个完整的发布版,包括更多整理规则、配置文件和界面优化。