Python批量替換多個(gè)Word文檔的多個(gè)關(guān)鍵字的方法
嘿,各位小伙伴們,大家好!有沒有想過,如何在多個(gè)Word文檔中批量替換多個(gè)關(guān)鍵字?不用擔(dān)心,今天我來教大家一招,用Python輕松搞定這個(gè)問題!保證讓你分分鐘擁有處理文檔的超級(jí)魔法~
工具準(zhǔn)備
開始之前,我們需要一個(gè)神奇的工具:pywin32。別閑著,趕緊裝上:
pip install pywin32
先梳理一下思路
1.收集所有待處理的文檔路徑:小主們得準(zhǔn)備好一堆需要處理的Word文檔。
2.定義關(guān)鍵字替換列表:明確哪些關(guān)鍵字要被替換,以及替換后的內(nèi)容。
3.遍歷所有文檔并逐一替換:給這些文檔施展魔法,批量替換關(guān)鍵字。
神奇代碼來啦!
以下是實(shí)現(xiàn)上述功能的完整代碼:
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/待替換關(guān)鍵字的Word"
save_directory = "C:/Users/olive/Desktop/完成替換關(guān)鍵字的Word"
keywords = {
"簽定": "簽訂",
"商品": "產(chǎn)品",
}
replace_all_keywords_in_docxs(file_directory, save_directory, keywords)代碼詳解
這段代碼首先定義了兩個(gè)函數(shù):
1.replace_all_keywords_in_docx函數(shù):它使用win32com庫中的Word應(yīng)用程序?qū)嵗?,在給定的Word文檔中遍歷關(guān)鍵字-替換詞典,執(zhí)行替換操作,并將修改后的文檔保存到指定路徑。
2.replace_all_keywords_in_docxs函數(shù):它遍歷指定目錄下的所有Word文檔,對(duì)每個(gè)文檔執(zhí)行關(guān)鍵字替換操作,并將修改后的文檔保存到指定的目錄。
在代碼的主要部分,定義了待處理文件目錄、保存文件目錄和關(guān)鍵字替換詞典,然后調(diào)用replace_all_keywords_in_docxs函數(shù)來執(zhí)行批量替換關(guān)鍵字的操作。
激動(dòng)人心的測(cè)試
我們先準(zhǔn)備幾個(gè)Word文檔,在這里,我用之前的課程中生成過的合同文檔為例:

我們準(zhǔn)備了這三個(gè)合同文檔,我們打開一份文檔看一下:

這份文檔中,我們發(fā)現(xiàn)有幾個(gè)地方寫錯(cuò)了,簽定應(yīng)該要改成簽訂,同時(shí)商品要改成產(chǎn)品。當(dāng)然,我們可以使用Word軟件的查找替換功能,但是當(dāng)有好多份文檔呢,要一份一份文檔打開查找替換,同時(shí),如果有多個(gè)關(guān)鍵字錯(cuò)了,還要執(zhí)行多次的查找替換,還容易看漏找錯(cuò),想想這工作量就恐怖。
現(xiàn)在,我們寫的代碼要閃亮登場(chǎng)了,一秒搞定。在運(yùn)行我們的代碼之間,記得要先改一下你的文件路徑和關(guān)鍵字哦:
file_directory = "C:/Users/olive/Desktop/待替換關(guān)鍵字的Word"
save_directory = "C:/Users/olive/Desktop/完成替換關(guān)鍵字的Word"
keywords = {
"簽定": "簽訂",
"商品": "產(chǎn)品",
}好了,現(xiàn)在可以運(yùn)行我們的代碼了,激動(dòng)人心的時(shí)刻來了,不要著急,我們運(yùn)行完后,先看一下控制臺(tái)的輸出:
正在處理文件: 食品采購合同_好佳食品有限公司.docx Replaced '簽定' with '簽訂' Replaced '商品' with '產(chǎn)品' 正在處理文件: 食品采購合同_美食來食品有限公司.docx Replaced '簽定' with '簽訂' Replaced '商品' with '產(chǎn)品' 正在處理文件: 食品采購合同_胡記食品有限公司.docx Replaced '簽定' with '簽訂' Replaced '商品' with '產(chǎn)品'
ok,說明每份文檔都被執(zhí)行到了,對(duì)應(yīng)的關(guān)鍵字也被執(zhí)行替換了,我們隨便打開一份文檔檢驗(yàn)一下吧:

ok,替換成功,大功告成。
結(jié)語
小伙伴們,看似復(fù)雜的批量替換操作,其實(shí)一點(diǎn)兒都不難吧!用上Python這門神器,處理文檔簡(jiǎn)直不要太方便~快去試試,在工作中展示你的魔法技能吧!
到此這篇關(guān)于Python批量替換多個(gè)Word文檔的多個(gè)關(guān)鍵字的方法的文章就介紹到這了,更多相關(guān)Python批量替換Word關(guān)鍵字內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PyQt5設(shè)置登錄界面及界面美化的實(shí)現(xiàn)
這篇文章主要介紹了PyQt5設(shè)置登錄界面及界面美化的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
分享5個(gè)方便好用的Python自動(dòng)化腳本
這篇文章主要介紹了分享5個(gè)方便好用的Python自動(dòng)化腳本,這次我們使用Python來實(shí)現(xiàn)幾個(gè)自動(dòng)化場(chǎng)景,或許可以用到你的工作中或者對(duì)你的學(xué)習(xí)有所幫助,需要的朋友可以參考一下2022-03-03
基礎(chǔ)的十進(jìn)制按位運(yùn)算總結(jié)與在Python中的計(jì)算示例
按位運(yùn)算是計(jì)算機(jī)學(xué)習(xí)中的基礎(chǔ),Python完全支持位運(yùn)算符從而幾乎可以直接顯示出位運(yùn)算的結(jié)果,這里我們稍微總結(jié)一下基礎(chǔ)的十進(jìn)制按位運(yùn)算總結(jié)與在Python中的計(jì)算示例2016-06-06
python 項(xiàng)目目錄結(jié)構(gòu)設(shè)置
JAVA有標(biāo)準(zhǔn)的maven目錄結(jié)構(gòu),golang也有建議的目錄結(jié)構(gòu),那么我想python是不是也有一個(gè)比較好的目錄結(jié)構(gòu)組織方式呢2020-02-02
如何使用Python對(duì)日期和時(shí)間進(jìn)行排序
本文將教我們?nèi)绾问褂肞ython對(duì)日期和時(shí)間進(jìn)行排序,我們還將學(xué)習(xí)datetime模塊和sorted方法,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2023-06-06
Python tkinter庫繪制春聯(lián)和福字的示例詳解
馬上要過年了,這篇文章將用到Python中的tkinter庫來寫一副春聯(lián)&福字送給大家。文中的實(shí)現(xiàn)方法講解詳細(xì),感興趣的小伙伴可以試一試2022-01-01

