python批量修改word文档内容

实现的目标

批量word文档内容

用到的python模块

pip install python-docx

脚本内容

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import docx
import sys

#需替换文档目录
path = u'G:\文档修改'
#自动创建
tlog =  path + u'\替换文档列表.txt'
err_log = path + u'\替换出错列表.txt'

if sys.getdefaultencoding() != 'utf-8':
    reload(sys)
    sys.setdefaultencoding('utf-8')
#两个日志
def log(text):
    with open( err_log,"a+" ) as f:
        f.write(text)
        f.write('\n')
def log2(text):
    with open( tlog,"a+" ) as f:
        f.write(text)
        f.write('\n')


#替换内容(文档名称,旧的内容,新的内容)
def info_update(doc,old_info,new_info):
    #替换文档中所有文字内容
    for para in doc.paragraphs:
        for run in para.runs:
            run.text = run.text.replace(old_info,new_info)
    #替换文档中表格中的内容
    for table in doc.tables:
        for row in table.rows:
            for cell in row.cells:
                cell.text = cell.text.replace(old_info,new_info)


                
def thr(old_info,new_info):
    #遍历目录中的docx文档
    for parent, dirnames, filenames in os.walk(path):
        for fn in filenames:
            filedir = os.path.join(parent, fn)
            if fn.endswith('.docx'):
                try:
                    #定义文档路径
                    doc = docx.Document(filedir)
                    #调用函数修改文档内容
                    info_update(doc,old_info,new_info)
                    #保存文档
                    doc.save(filedir)
                    #写入修改日志
                    log2(filedir + ' 修改完成')
                    print(filedir + ' 修改完成')
                except Exception as e:
                    #写入修改失败日志
                    log(filedir)


if __name__ == '__main__':
    thr('大哥','小弟')
    print('----全部替换完成----')

  • 2
    点赞
  • 0
    评论
  • 17
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

打赏
文章很值,打赏犒劳作者一下
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页

打赏

@大厂来回飞奔

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者