批量替换word内容

有一个需求需要把word中的一段文档的编号批量替换

如,把133-183批量的替换成31-81,需要批量的替换word,脚本如下

from docx import Document
import os

oldFile = "C:\\Users\\wuzs\\Desktop\\test.docx"
newFile = "C:\\Users\\wuzs\\Desktop\\test2.docx"

DICT = {
"SP_OS_NETWORK_133":"SP_OS_NETWORK_031",
"SP_OS_NETWORK_134":"SP_OS_NETWORK_032",
"SP_OS_NETWORK_135":"SP_OS_NETWORK_033",
"SP_OS_NETWORK_136":"SP_OS_NETWORK_034",
*****************

*****************
"SP_OS_NETWORK_182":"SP_OS_NETWORK_080",
"SP_OS_NETWORK_183":"SP_OS_NETWORK_081",

}

def main():
    document = Document(oldFile)
    document = check(document)
    document.save(newFile)

def check(document):
    # tables
    for table in document.tables:
        for row in range(len(table.rows)):
            for col in range(len(table.columns)):
                for key, value in DICT.items():
                    if key in table.cell(row, col).text:
                        print(key + "->" + value)
                        table.cell(row, col).text = table.cell(row, col).text.replace(key, value)

    # paragraphs
    for para in document.paragraphs:
        for i in range(len(para.runs)):
            for key, value in DICT.items():
                if key in para.runs[i].text:
                    print(key + "->" + value)
                    para.runs[i].text = para.runs[i].text.replace(key, value)

    return document

if __name__ == '__main__':
    main()

原文地址:https://www.cnblogs.com/mrwuzs/p/11444594.html

时间: 2024-10-08 08:09:25

批量替换word内容的相关文章

linux下sed批量替换文件内容

在linux超级终端下编辑文档是件比较麻烦的事情,下面简单介绍一下如何在linux下批量替换文件内容 linuxsed 批量替换多个文件中的字符串 格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径` 例如:替换/home下所有文件中的xxx为ooo sed -i "s/xxx/ooo/g" `grep xxx -rl /home` 单个文件中的字符串替换 将文件1.txt内的文字“111”替换成“222” sed -i &qu

linux下批量替换文件内容

linux下批量替换文件内容 1.网络上现成的资料 格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径` linux sed 批量替换多个文件中的字符串 sed -i "s/oldstring/newstring/g" `grep oldstring -rl yourdir` 例如:替换/home下所有文件中的www.admin99.net为admin99.net sed -i "s/www.admin99.net/a

sed批量替换文件内容

sed -i "s/123/456/g" `grep 123 -rl ./ | grep -v log` #把当前目录下所有文件中的123替换成456,包括子目录啊 sed批量替换文件内容

Linux下 批量替换文件内容方法和odoo替换谷歌字体

#odoo#用中科院CDN解决odoo用到google字体速度慢问ti Linux下批量替换文件内容方法 http://www.cnblogs.com/fjping0606/p/4428850.html 1:查找find . -type f -name "*.html"|xargs grep 'yourstring' 2:查找并替换find -name '要查找的文件名' | xargs perl -pi -e 's|被替换的字符串|替换后的字符串|g' perl -pi -e在Per

织梦dedecms如何批量替换文章内容和缩略图

文章来自:http://blog.sina.com.cn/s/blog_475ea1130101co6w.html 第一种方法: 进入后台,点左侧的采集,点选批量维护的数据库内容替换. 1.替换标题内某关键词,选择dede_archives数据表,选择title字段,被替换内容:收入,替换为:赚钱,填入安全确认码,最后点开始替换数据,提示替换成功,这样文章的标题内容批量的替换很方便! 2.替换文章正文内某关键词,选择dede_addonarticle数据表,选择body字段,被替换内容:收入,替

Linux下批量替换文件内容和文件名(转)

1.批量替换指定多个文件的文件内容 在指定目录/your/path里,查找包含old_string字符串的所有文件,并用new_string字符串替换old_string字符串. sed -i "s/old_string/new_string/g" `grep old_string -rl /your/path` 2.批量修改指定多个文件的文件名 在指定的路径/your/path下,查找以old_name字符串开头的所有文件,并以new_string替换掉old_string字符串.

Perl 使用perl命令批量替换文件内容

对linux系统下面多个文本文件内容做处理,是SA经常需要完成的工作.如何高效的完成这个工作,perl应该是一个不错的语言工具.你甚至不需要编写perl脚本,用命令就可以完成上面的工作. perl 命令可以批量替换文件中的一些内容,操作起来非常高效.下面举几个例子: perl -pi -e "s/aaa/bbb/gi" test.txt 上面的命令把test.txt文件中的字符aaa替换成bbb perl -pi.bak -e "s/aaa/bbb/gi" test

wordpress不用插件实现批量替换文章内容中的旧地址

修改网站地址后,会有好多附件地址不变,附一个SQL语句,应用于phpmyadmin,批量修改: UPDATE `typecho_contents` SET `text` = REPLACE(`text`,'旧域名地址','新域名地址'); 同样可以替换其它表的内容: UPDATE `typecho_golinks` SET `target` = REPLACE(`target`,'a.b','b.c'); 替换其它内容: UPDATE `typecho_fields` SET `str_valu

Linux下批量替换文件内容方法

1:查找find . -type f -name "*.html"|xargs grep ‘yourstring’ 2:查找并替换find -name '要查找的文件名' | xargs perl -pi -e 's|被替换的字符串|替换后的字符串|g' perl -pi -e在Perl 命令中加上-e 选项,后跟一行代码,那它就会像运行一个普通的Perl 脚本那样运行该代码.从命令行中使用Perl 能够帮助实现一些强大的.实时的转换.认真研究正则表达式,并正确地使用,将会为您省去大量