乐于分享
好东西不私藏

Word 批量字符替换(WordBatchReplace)

Word 批量字符替换(WordBatchReplace)

在 Windows 上批量对 .doc / .docx 执行查找与替换,通过 Microsoft Word 的自动化接口处理,与 Word 自带「查找和替换」使用同一套引擎逻辑。

产品特点

  • 大批量 Word 一键替换
    :选定文件夹后一次执行,递归处理子目录中的全部 Word 文件;无需逐个手动打开文档在 Word 里查找替换。
  • 替换前后文字在 Word 中格式不变
    :采用 Word 自带查找替换引擎,常用纯文本替换下由 Word 维护原有段落与字符样式;不通过粗暴改写文档 XML 等方式破坏版式(效果与在 Word 中手动执行同类替换一致;若查找内容本身含特殊格式要求,以 Word 规则为准)。
  • 个性化功能
    :支持「原文件替换 / 复制到输出目录再替换」、按文件勾选处理范围、查找与替换历史及下拉管理、进度与取消、本地配置持久化等,可按工作习惯组合使用。
  • 离线运行
    :无需联网;不依赖云端服务,所有操作在本机完成。
  • 隐私保存在本地
    :路径、查找/替换内容、历史记录与运行日志均写入本机目录下的 config.json 与 logs,不上传、不经过第三方服务器。
  • 工具轻巧、资源占用低
    :单脚本 + 自带界面(Tkinter),依赖少、安装包体积小;平时仅占用轻量 GUI 进程;实际替换时由本机已安装的 Word 短时参与,处理完即释放,无常驻重型后台服务。

截图

环境要求

  • 操作系统
    :Windows(本程序依赖 Word COM,不支持 macOS / Linux)
  • Microsoft Word
    :已安装并可正常启动
  • Python
    (源码运行):建议 3.10 及以上

安装依赖(源码运行)

在项目根目录执行:

pip install -r requirements.txt

依赖主要为 pywin32。

运行方式

方式一:直接运行脚本

python main.py

方式二:打包为 exe

双击或在命令行执行项目根目录下的 build_exe.bat。完成后可执行文件位于:

dist\WordBatchReplace.exe

首次运行后,会在 exe 同目录 自动生成:

  • config.json
    :保存界面中的路径、查找/替换内容及历史等
  • logs\
    :每次启动生成带时间戳的运行日志

功能说明

功能
说明
目标文件夹
递归扫描该目录及子目录下的 Word 文件,适合大批量目录树一键处理
输出模式
原文件直接替换

,或 复制到输出文件夹再替换(保持相对路径结构)
输出文件夹
仅在「复制后替换」模式下可用;若输出目录位于源目录内,会自动跳过输出目录下的文件,避免重复处理
选择文件
在默认全选基础上,勾选需要处理的文件;未勾选的文件不会参与替换(个性化限定范围)
查找 / 替换
支持历史记录下拉;可通过下拉箭头管理、删除历史项
保存输入
将当前设置写入本地 config.json隐私保存在本地
取消
在处理完当前正在打开的文件后停止后续文件(不会强行中断 Word 内部操作)

配置文件 config.json

与 main.py 或 WordBatchReplace.exe同目录。主要字段包括:

  • folder_path
    :目标文件夹
  • output_mode
    inplace(原文件)或 copy(复制后替换)
  • output_path
    :输出文件夹(复制模式)
  • find_text
     / replace_text:查找与替换文本
  • find_history
     / replace_history:历史记录列表
  • deselected_files
    :相对路径列表,表示在文件选择器中取消勾选的文件

请勿在程序运行时手动删除正在使用的配置文件,以免保存时异常。

日志

  • 界面底部有简要运行日志
  • 详细日志在 logs\run_YYYYMMDD_HHMMSS.txt
  • 可通过「打开日志目录」快速打开 logs 文件夹

常见问题

  1. 提示缺少依赖执行 pip install pywin32,并确认当前 Python 环境与运行 python main.py 的环境一致。

  2. 处理很慢为保证兼容与稳定,当前实现为每个文件单独启动 Word 并完成替换后退出,文件数量极大时总耗时会较长;程序本体仍保持轻巧,主要时间花在 Word 打开/保存文档上。

  3. 部分文件失败查看对应日期的日志文件中的异常堆栈;常见原因包括文件被占用、路径无权限、文件损坏等。

许可证

若仓库未单独提供许可证文件,以仓库所有者声明为准。

项目结构(简要)

WordBatchReplace/├── main.py              # 主程序(界面与替换逻辑)├── requirements.txt     # Python 依赖├── config.json          # 用户配置(运行后生成或随发布携带)├── build_exe.bat        # PyInstaller 一键打包脚本├── WordBatchReplace.spec # PyInstaller 规格文件(可选)├── logs/                # 运行日志目录└── README.md            # 本说明

已开源至github:https://github.com/zhpcn/WordBatchReplace