Python批量替换多个Word文档的多个关键字的方法

Written by

in

文章目录
  • 开始之前,我们需要一个神奇的工具:pywin32。别闲着,赶紧装上: pip install pywin32
  • 1.收集所有待处理的文档路径:小主们得准备好一堆需要处理的Word文档。 2.定义关键字替换列表:明确哪些关键字要被替换,以及替换后的内容。 3.遍历所有文档并逐一替换:给这些文档施展魔法,批量替换关键字。
  • 以下是实现上述功能的完整代码: import os from win32com import client def replace_all_keywords_in_docx(file_path, save_path, keywords): word = client.Dispatch(“Word.Application”) word.Visible = False doc = word.Documents.Open(file_path) for old_text, new_text in keywords.items(): find_obj = word.Selection.Find find_obj.ClearFormatting() find_obj.Text = old_text find_obj.Replacement.ClearFormatting() find_obj.Replacement.Text = new_text if find_obj.Execute(Replace=client.constants.wdReplaceAll): print(f”Replaced ‘{old_text}’ with ‘{new_text}'”) doc.SaveAs(save_path) doc.Close() word.Quit() def replace_all_keywords_in_docxs(file_directory, save_directory, keywords): if not os.path.exists(save_directory): os.makedirs(save_directory) for file_name in os.listdir(file_directory): if file_name.endswith(“.docx”): print(“正在处理文件:”, file_name) file_path = os.path.join(file_directory, file_name) save_path = os.path.join(save_directory, file_name) replace_all_keywords_in_docx(file_path, save_path, keywords) file_directory = “C:/Users/olive/Desktop/待替换关键字的Word” save_directory = “C:/Users/olive/Desktop/完成替换关键字的Word” keywords = { “签定”: “签订”, “商品”: “产品”, } replace_all_keywords_in_docxs(file_directory, save_directory, keywords)
  • 这段代码首先定义了两个函数: 1.replace_all_keywords_in_docx函数:它使用win32com库中的Word应用程序实例,在给定的Word文档中遍历关键字-替换词典,执行替换操作,并将修改后的文档保存到指定路径。 2.replace_all_keywords_in_docxs函数:它遍历指定目录下的所有Word文档,对每个文档执行关键字替换操作,并将修改后的文档保存到指定的目录。 在代码的主要部分,定义了待处理文件目录、保存文件目录和关键字替换词典,然后调用replace_all_keywords_in_docxs函数来执行批量替换关键字的操作。
  • 我们先准备几个Word文档,在这里,我用之前的课程中生成过的合同文档为例: 我们准备了这三个合同文档,我们打开一份文档看一下: 这份文档中,我们发现有几个地方写错了,签定应该要改成签订,同时商品要改成产品。当然,我们可以使用Word软件的查找替换功能,但是当有好多份文档呢,要一份一份文档打开查找替换,同时,如果有多个关键字错了,还要执行多次的查找替换,还容易看漏找错,想想这工作量就恐怖。 现在,我们写的代码要闪亮登场了,一秒搞定。在运行我们的代码之间,记得要先改一下你的文件路径和关键字哦: file_directory = “C:/Users/olive/Desktop/待替换关键字的Word” save_directory = “C:/Users/olive/Desktop/完成替换关键字的Word” keywords = { “签定”: “签订”, “商品”: “产品”, } 好了,现在可以运行我们的代码了,激动人心的时刻来了,不要着急,我们运行完后,先看一下控制台的输出: 正在处理文件: 食品采购合同_好佳食品有限公司.docx Replaced ‘签定’ with ‘签订’ Replaced ‘商品’ with ‘产品’ 正在处理文件: 食品采购合同_美食来食品有限公司.docx Replaced ‘签定’ with ‘签订’ Replaced ‘商品’ with ‘产品’ 正在处理文件: 食品采购合同_胡记食品有限公司.docx Replaced ‘签定’ with ‘签订’ Replaced ‘商品’ with ‘产品’ ok,说明每份文档都被执行到了,对应的关键字也被执行替换了,我们随便打开一份文档检验一下吧: ok,替换成功,大功告成。
  • 小伙伴们,看似复杂的批量替换操作,其实一点儿都不难吧!用上Python这门神器,处理文档简直不要太方便~快去试试,在工作中展示你的魔法技能吧! 到此这篇关于Python批量替换多个Word文档的多个关键字的方法的文章就介绍到这了,更多相关Python批量替换Word关键字内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 您可能感兴趣的文章: Python实现快速替换Word文档中的关键字 使用Python实现在Word文档中批量标记关键字 Python批量实现word中查找关键字的示例代码
  • 目录
    • 工具准备
    • 先梳理一下思路
    • 神奇代码来啦!
    • 代码详解
    • 激动人心的测试
    • 结语

    嘿,各位小伙伴们,大家好!有没有想过,如何在多个Word文档中批量替换多个关键字?不用担心,今天我来教大家一招,用Python轻松搞定这个问题!保证让你分分钟拥有处理文档的超级魔法~

    开始之前,我们需要一个神奇的工具:pywin32。别闲着,赶紧装上:

    pip install pywin32

    1.收集所有待处理的文档路径:小主们得准备好一堆需要处理的Word文档。

    2.定义关键字替换列表:明确哪些关键字要被替换,以及替换后的内容。

    3.遍历所有文档并逐一替换:给这些文档施展魔法,批量替换关键字。

    以下是实现上述功能的完整代码:

    import os
     
    from win32com import client
     
     
    def replace_all_keywords_in_docx(file_path, save_path, keywords):
        word = client.Dispatch("Word.Application")
        word.Visible = False
        doc = word.Documents.Open(file_path)
     
        for old_text, new_text in keywords.items():
            find_obj = word.Selection.Find
            find_obj.ClearFormatting()
            find_obj.Text = old_text
            find_obj.Replacement.ClearFormatting()
            find_obj.Replacement.Text = new_text
            if find_obj.Execute(Replace=client.constants.wdReplaceAll):
                print(f"Replaced '{old_text}' with '{new_text}'")
        doc.SaveAs(save_path)
        doc.Close()
        word.Quit()
     
     
    def replace_all_keywords_in_docxs(file_directory, save_directory, keywords):
        if not os.path.exists(save_directory):
            os.makedirs(save_directory)
        for file_name in os.listdir(file_directory):
            if file_name.endswith(".docx"):
                print("正在处理文件:", file_name)
                file_path = os.path.join(file_directory, file_name)
                save_path = os.path.join(save_directory, file_name)
                replace_all_keywords_in_docx(file_path, save_path, keywords)
     
     
    file_directory = "C:/Users/olive/Desktop/待替换关键字的Word"
    save_directory = "C:/Users/olive/Desktop/完成替换关键字的Word"
    keywords = {
        "签定": "签订",
        "商品": "产品",
    }
     
    replace_all_keywords_in_docxs(file_directory, save_directory, keywords)

    这段代码首先定义了两个函数:

    1.replace_all_keywords_in_docx函数:它使用win32com库中的Word应用程序实例,在给定的Word文档中遍历关键字-替换词典,执行替换操作,并将修改后的文档保存到指定路径。

    2.replace_all_keywords_in_docxs函数:它遍历指定目录下的所有Word文档,对每个文档执行关键字替换操作,并将修改后的文档保存到指定的目录。

    在代码的主要部分,定义了待处理文件目录、保存文件目录和关键字替换词典,然后调用replace_all_keywords_in_docxs函数来执行批量替换关键字的操作。

    我们先准备几个Word文档,在这里,我用之前的课程中生成过的合同文档为例:

    我们准备了这三个合同文档,我们打开一份文档看一下:

    这份文档中,我们发现有几个地方写错了,签定应该要改成签订,同时商品要改成产品。当然,我们可以使用Word软件的查找替换功能,但是当有好多份文档呢,要一份一份文档打开查找替换,同时,如果有多个关键字错了,还要执行多次的查找替换,还容易看漏找错,想想这工作量就恐怖。

    现在,我们写的代码要闪亮登场了,一秒搞定。在运行我们的代码之间,记得要先改一下你的文件路径和关键字哦:

    file_directory = "C:/Users/olive/Desktop/待替换关键字的Word"
    save_directory = "C:/Users/olive/Desktop/完成替换关键字的Word"
    keywords = {
        "签定": "签订",
        "商品": "产品",
    }

    好了,现在可以运行我们的代码了,激动人心的时刻来了,不要着急,我们运行完后,先看一下控制台的输出:

    正在处理文件: 食品采购合同_好佳食品有限公司.docx
    Replaced '签定' with '签订'
    Replaced '商品' with '产品'
    正在处理文件: 食品采购合同_美食来食品有限公司.docx
    Replaced '签定' with '签订'
    Replaced '商品' with '产品'
    正在处理文件: 食品采购合同_胡记食品有限公司.docx
    Replaced '签定' with '签订'
    Replaced '商品' with '产品'

    ok,说明每份文档都被执行到了,对应的关键字也被执行替换了,我们随便打开一份文档检验一下吧:

    ok,替换成功,大功告成。

    小伙伴们,看似复杂的批量替换操作,其实一点儿都不难吧!用上Python这门神器,处理文档简直不要太方便~快去试试,在工作中展示你的魔法技能吧!

    到此这篇关于Python批量替换多个Word文档的多个关键字的方法的文章就介绍到这了,更多相关Python批量替换Word关键字内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!

    您可能感兴趣的文章:

    • Python实现快速替换Word文档中的关键字
    • 使用Python实现在Word文档中批量标记关键字
    • Python批量实现word中查找关键字的示例代码

    站内搜索