从无到有:使用 AI 工具 TRAE 完成批量重命名工具项目

发布时间:2026/7/13 14:46:23
从无到有:使用 AI 工具 TRAE 完成批量重命名工具项目 引言在软件开发领域AI 工具正逐渐成为开发者的得力助手最近开始接触到免费的TRAECN开发工具。本文以一个批量重命名工具项目为例详细记录如何使用 TRAE AI 工具从无到有完成一个可发布到 GitHub 的完整项目。项目背景与需求分析初始需求我的硬盘里存有大量收集的电子书网上很多工具软件不符合我的使用习惯所以希望独自开发一个批量重命名工具具备以下核心功能遍历指定目录下的 epub、pdf 等文件批量更改文件名去掉指定字符串支持增添扩展名类型可任意设置要更改的前缀、后缀、中间任意字符串需求演进随着开发的深入我发现有些地方还可以改进随着使用频率不断升高我也开始不断提出新的需求添加 GUI 图形界面增加撤销/后退功能增加显示找到文件列表增加替换指定字符串功能文件扩展名也可更改增强前后缀功能完善异常处理机制开发流程阶段一项目初始化与核心功能开发需求创建项目结构实现基础重命名功能TRAE 操作使用Write工具创建项目目录结构创建核心模块file_scanner.py、renamer.py、cli.py、main.py创建测试模块tests/test_renamer.py、tests/test_scanner.py创建项目配置文件pyproject.toml、requirements.txt、.gitignore关键文件file_scanner.py - 文件扫描模块renamer.py - 重命名核心模块cli.py - 命令行接口main.py - 主入口文件功能实现支持移除前缀、后缀、任意字符串支持自定义扩展名列表冲突检测与跳过机制空文件名保护阶段二添加 GUI 图形界面需求为项目添加友好的图形界面TRAE 操作创建gui.py模块使用 tkinter 构建界面重构main.py实现 CLI 和 GUI 的自动切换添加多标签页界面配置、文件列表、预览关键文件gui.py - 图形界面模块功能实现目录选择对话框配置参数输入框文件列表显示重命名预览表格执行重命名按钮阶段三修复相对导入问题问题直接运行python src/main.py时出现相对导入错误TRAE 操作修改main.py添加双重导入机制优先使用相对导入失败时回退到绝对导入修复代码try: from .file_scanner import scan_directory except ImportError: sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) from src.file_scanner import scan_directory阶段四增加撤销/后退功能需求增加恢复原文件名的撤销功能TRAE 操作创建history.py模块实现历史记录管理修改main.py在执行重命名后保存历史记录在 GUI 和 CLI 中添加撤销入口关键文件history.py - 历史记录管理模块功能实现自动保存重命名历史到.rename_history.json支持多次撤销栈结构文件检测与冲突处理CLI 和 GUI 均支持撤销操作阶段五增强文件列表显示与替换功能需求增加文件列表显示增加替换指定字符串功能TRAE 操作在 GUI 中新增文件列表标签页在renamer.py中新增replace_string函数在main.py中增加replace参数在 CLI 中新增--replace参数功能实现选择目录后自动显示匹配文件列表支持替换字符串格式旧字符串:新字符串支持多组替换阶段六深度优化与功能增强需求文件扩展名也可更改增强前后缀功能完善异常处理TRAE 操作在renamer.py中新增replace_extension、add_prefix、add_suffix函数扩展generate_new_filename支持所有新参数增加正则表达式和忽略大小写选项增加 Windows 非法字符检测重构RenameResult增加状态字段区分不同情况功能实现扩展名替换支持替换所有或指定扩展名添加前缀/后缀功能正则表达式支持忽略大小写匹配文件名合法性检测非法字符、保留名称、长度限制状态管理NO_MATCH、NO_CHANGES、HAS_CHANGES、ERROR阶段七修复参数名冲突错误问题generate_new_filename函数中参数名add_suffix与函数名冲突TRAE 操作将参数名改为prefix_to_add和suffix_to_add更新所有调用处阶段八修复替换字符串预览问题问题GUI 预览时无异常处理导致程序崩溃TRAE 操作在gui.py的_preview方法中添加异常处理在renamer.py的正则表达式编译处添加异常处理阶段九修复移除字符串分隔符问题问题使用逗号作为分隔符时无法输入包含逗号的字符串TRAE 操作将分隔符从逗号,改为分号;更新 GUI 标签提示阶段十修复移除字符串后空格处理问题问题移除字符串后原字符串周围的空格未清理TRAE 操作在remove_string函数中添加空格清理逻辑将多个连续空格合并为一个去掉首尾空格技术架构设计项目结构ChangeFileName/ ├── src/ # 源代码目录 │ ├── __init__.py # 包初始化 │ ├── file_scanner.py # 文件扫描模块 │ ├── renamer.py # 重命名核心模块 │ ├── cli.py # 命令行接口 │ ├── gui.py # 图形界面模块 │ ├── history.py # 历史记录管理 │ └── main.py # 主入口文件 ├── tests/ # 单元测试目录 │ ├── __init__.py │ ├── test_renamer.py │ ├── test_scanner.py │ └── test_history.py ├── docs/ # 文档目录 │ └── USAGE.md # 使用说明手册 ├── .gitignore # Git 忽略文件 ├── LICENSE # MIT 开源许可证 ├── README.md # 项目说明文档 ├── pyproject.toml # Python 项目配置 └── requirements.txt # Python 依赖文件核心模块职责模块职责关键功能file_scanner.py扫描目录中的文件根据扩展名过滤文件renamer.py重命名核心逻辑移除/替换字符串、添加前后缀、扩展名替换cli.py命令行接口参数解析、命令行交互gui.py图形界面用户界面、预览、执行history.py历史记录管理保存、加载、撤销历史main.py主入口调用核心逻辑、协调 CLI/GUI关键设计决策模块化架构将功能拆分为独立模块便于维护和扩展纯函数设计核心重命名逻辑使用纯函数便于测试和复用状态管理使用RenameResult数据类统一返回结果双重入口支持 CLI 和 GUI 两种运行模式历史持久化使用 JSON 文件保存历史记录异常处理全面的异常捕获和错误提示遇到的问题与解决方案问题 1相对导入错误现象直接运行python src/main.py时出现ImportError: attempted relative import with no known parent package解决方案使用双重导入机制优先相对导入失败时回退到绝对导入问题 2参数名与函数名冲突现象generate_new_filename函数中参数名add_suffix与函数名add_suffix冲突导致str object is not callable解决方案将参数名改为suffix_to_add避免命名冲突问题 3分隔符冲突现象使用逗号作为分隔符时无法输入包含逗号的字符串解决方案将分隔符改为分号;问题 4空格清理现象移除字符串后原字符串周围的空格保留导致文件名中出现多余空格解决方案使用正则表达式将多个连续空格合并为一个并去掉首尾空格问题 5异常未处理现象GUI 预览时遇到异常直接崩溃没有错误提示解决方案在关键操作处添加 try-except 块弹出友好的错误对话框GitHub 项目结构规范必须包含的文件README.md- 项目说明文档包含项目介绍、安装方法、使用说明LICENSE- 开源许可证推荐使用 MIT License.gitignore- Git 忽略规则排除临时文件、编译产物等pyproject.toml- Python 项目配置支持 pip 安装requirements.txt- Python 依赖列表目录结构规范src/- 源代码目录使用包结构tests/- 单元测试目录docs/- 文档目录代码质量保证单元测试覆盖核心功能确保代码正确性类型提示使用 Python 类型提示提高代码可读性文档字符串为函数和类添加详细的文档字符串异常处理全面的异常捕获和错误处理使用说明安装方式# 克隆项目 git clone https://github.com/donoot/BatchRenameTool.git ​ # 安装到本地 cd BatchRenameTool pip install . ​ # 直接使用命令 batch-rename /path/to/directory -p 前缀_命令行使用# 基本用法 batch-rename /path/to/directory -p 前缀_ -s _后缀 -r 需要移除的字符串 ​ # 替换字符串 batch-rename /path/to/directory --replace 旧名称:新名称 ​ # 替换扩展名 batch-rename /path/to/directory --replace-ext pdf:epub ​ # 添加前缀/后缀 batch-rename /path/to/directory --add-prefix 2024_ --add-suffix _final ​ # 使用正则表达式 batch-rename /path/to/directory -p ^[0-9]_ --regex ​ # 忽略大小写 batch-rename /path/to/directory --replace Old:New --ignore-case ​ # 撤销操作 batch-rename /path/to/directory -uGUI 使用运行python -m src.main或batch-rename无参数在配置标签页设置参数在文件列表标签页查看匹配文件点击预览查看重命名结果点击执行重命名完成操作点击撤销恢复原文件名总结通过这个项目的开发过程我们可以看到 AI 工具 TRAE 在软件开发中的强大能力快速原型开发从需求到可运行代码只需几分钟代码质量保证自动生成符合规范的代码结构问题排查能力快速定位和修复各种错误功能扩展能力轻松添加新功能和优化现有功能文档生成自动生成项目文档和使用说明关键成功因素清晰的需求描述明确的需求是 AI 工具高效工作的前提迭代式开发逐步完善功能每一步都验证效果测试驱动每个功能都有对应的测试用例良好的架构设计模块化、可扩展的代码结构这个批量重命名工具项目已经具备了生产环境所需的所有功能代码质量高文档齐全可以直接发布到 GitHub 或 Gitee 供其他开发者使用。现已开源到Githubdonoot/BatchRenameTool: 批量重命名工具支持 GUI 和 CLI 模式https://github.com/donoot/BatchRenameTool