You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python批量遍历文件夹处理docx文件并保存到新文件夹

批量处理DOCX文件:遍历筛选+文本替换+保存到新文件夹

先给你整理好的完整可运行代码:

import docx
import os

# 配置参数
source_dir = '.'  # 源文件夹路径
target_dir = './newOrder'  # 目标文件夹路径
extension = '.docx'
# 替换规则(不要用dict做变量名,避免和内置类型冲突)
replace_rules = {
    'Don Steel': 'TAN',
    '5538AP': '5499AP',
    'Special Mask Build Notes': 'Special Mask Build Notes: Special New receipts for TAN 4X to 5X'
}

# 确保目标文件夹存在,不存在则自动创建
os.makedirs(target_dir, exist_ok=True)

def replacer(p, replace_dict):
    inline = p.runs
    for j in range(len(inline)):
        for k, v in replace_dict.items():
            if k in inline[j].text:
                inline[j].text = inline[j].text.replace(k, v)
    return p

# 遍历源文件夹,筛选并处理所有DOCX文件
for filename in os.listdir(source_dir):
    # 只处理后缀为docx的文件(排除文件夹)
    if os.path.isfile(os.path.join(source_dir, filename)) and filename.endswith(extension):
        # 拼接源文件完整路径
        source_path = os.path.join(source_dir, filename)
        # 加载DOCX文件
        doc = docx.Document(source_path)
        
        # 执行文本替换
        for p in doc.paragraphs:
            p = replacer(p, replace_rules)
        
        # 拼接目标文件路径,保留原文件名
        target_path = os.path.join(target_dir, filename)
        # 保存修改后的文件
        doc.save(target_path)
        print(f"已处理完成:{target_path}")

关键修正与说明

1. 正确遍历筛选DOCX文件的语法

你原来的循环有语法错误,正确写法要注意:

  • 变量名不要加引号,直接用filename这类标识符
  • 循环语句末尾必须加冒号:
  • 要同时验证:遍历到的是文件(避免把文件夹误处理)+ 后缀是.docx,用os.path.isfile()和endswith()组合判断
  • 用os.path.join()拼接路径,避免跨平台(Windows/Linux)的路径分隔符问题

2. 自动创建目标文件夹

如果newOrder文件夹不存在,直接保存文件会报错,用os.makedirs(target_dir, exist_ok=True)可以自动创建文件夹,exist_ok=True表示文件夹已存在时不会抛出错误。

3. 保留原文件名保存

直接用os.path.join(target_dir, filename)把原文件名拼到目标文件夹路径后,就能自动保留原文件名,不用手动逐个修改。

4. 其他小优化

  • 删掉了没用的text变量
  • 把变量名dict改成replace_rules,因为dict是Python内置类型的名称,用作变量名会覆盖内置类型,容易引发问题
  • 简化了range(0, len(inline))为range(len(inline)),效果完全一致
  • 增加了打印提示,方便查看处理进度

内容的提问来源于stack exchange,提问作者linuxnewbie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 09:55:21