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ū)嵗诮o定的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)人心的測試
我們先準(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)在,我們寫的代碼要閃亮登場了,一秒搞定。在運(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這門神器,處理文檔簡直不要太方便~快去試試,在工作中展示你的魔法技能吧!
到此這篇關(guān)于Python批量替換多個(gè)Word文檔的多個(gè)關(guān)鍵字的方法的文章就介紹到這了,更多相關(guān)Python批量替換Word關(guān)鍵字內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python GUI教程之在PyQt5中使用數(shù)據(jù)庫的方法
Qt平臺(tái)對(duì)SQL編程有著良好的支持,PyQt5也一并繼承了過來,這篇文章主要介紹了Python GUI教程之在PyQt5中使用數(shù)據(jù)庫的方法,需要的朋友可以參考下2021-09-09
Python實(shí)現(xiàn)動(dòng)態(tài)添加類的屬性或成員函數(shù)的解決方法
這篇文章主要介紹了Python實(shí)現(xiàn)動(dòng)態(tài)添加類的屬性或成員函數(shù)的解決方法,在類似插件開發(fā)的時(shí)候會(huì)比較有用,需要的朋友可以參考下2014-07-07
如何利用Playwright庫進(jìn)行電影網(wǎng)站數(shù)據(jù)的獲取
playwright庫是微軟開源的一個(gè)庫,這個(gè)庫的功能更加的強(qiáng)大,除了可以實(shí)現(xiàn)同步操作,同樣也可以實(shí)現(xiàn)異步的操作,這篇文章主要介紹了如何利用Playwright庫進(jìn)行電影網(wǎng)站數(shù)據(jù)的獲取,需要的朋友可以參考下2023-05-05
pytest解讀fixtures中yield與addfinalizer區(qū)別
這篇文章主要為大家介紹了pytest官方解讀fixtures中yield與addfinalizer區(qū)別,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
Python詳解argparse參數(shù)模塊之命令行參數(shù)
這篇文章主要介紹了Python詳解argparse參數(shù)模塊之命令行參數(shù),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考下面文章詳解2022-07-07
Python中的Numeric包和Numarray包使用教程
這篇文章主要介紹了Python中的Numeric包和Numarray包使用教程,來自IBM官方網(wǎng)站上的技術(shù)文檔,需要的朋友可以參考下2015-04-04
Python自動(dòng)化實(shí)現(xiàn)監(jiān)控分析系統(tǒng)日志并告警
這篇文章主要為大家詳細(xì)介紹了如何使用Python實(shí)現(xiàn)一個(gè)強(qiáng)大的日志分析和告警工具,用于實(shí)時(shí)監(jiān)控、分析系統(tǒng)日志并發(fā)送告警通知,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-12-12

