Python批量替換多個Word文檔的多個關(guān)鍵字的方法
嘿,各位小伙伴們,大家好!有沒有想過,如何在多個Word文檔中批量替換多個關(guān)鍵字?不用擔(dān)心,今天我來教大家一招,用Python輕松搞定這個問題!保證讓你分分鐘擁有處理文檔的超級魔法~
工具準(zhǔn)備
開始之前,我們需要一個神奇的工具:pywin32。別閑著,趕緊裝上:
pip install pywin32
先梳理一下思路
1.收集所有待處理的文檔路徑:小主們得準(zhǔn)備好一堆需要處理的Word文檔。
2.定義關(guān)鍵字替換列表:明確哪些關(guān)鍵字要被替換,以及替換后的內(nèi)容。
3.遍歷所有文檔并逐一替換:給這些文檔施展魔法,批量替換關(guān)鍵字。
神奇代碼來啦!
以下是實現(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)
代碼詳解
這段代碼首先定義了兩個函數(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文檔,對每個文檔執(zhí)行關(guān)鍵字替換操作,并將修改后的文檔保存到指定的目錄。
在代碼的主要部分,定義了待處理文件目錄、保存文件目錄和關(guān)鍵字替換詞典,然后調(diào)用replace_all_keywords_in_docxs函數(shù)來執(zhí)行批量替換關(guān)鍵字的操作。
激動人心的測試
我們先準(zhǔn)備幾個Word文檔,在這里,我用之前的課程中生成過的合同文檔為例:
我們準(zhǔn)備了這三個合同文檔,我們打開一份文檔看一下:
這份文檔中,我們發(fā)現(xiàn)有幾個地方寫錯了,簽定應(yīng)該要改成簽訂,同時商品要改成產(chǎn)品。當(dāng)然,我們可以使用Word軟件的查找替換功能,但是當(dāng)有好多份文檔呢,要一份一份文檔打開查找替換,同時,如果有多個關(guān)鍵字錯了,還要執(zhí)行多次的查找替換,還容易看漏找錯,想想這工作量就恐怖。
現(xià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)在可以運行我們的代碼了,激動人心的時刻來了,不要著急,我們運行完后,先看一下控制臺的輸出:
正在處理文件: 食品采購合同_好佳食品有限公司.docx Replaced '簽定' with '簽訂' Replaced '商品' with '產(chǎn)品' 正在處理文件: 食品采購合同_美食來食品有限公司.docx Replaced '簽定' with '簽訂' Replaced '商品' with '產(chǎn)品' 正在處理文件: 食品采購合同_胡記食品有限公司.docx Replaced '簽定' with '簽訂' Replaced '商品' with '產(chǎn)品'
ok,說明每份文檔都被執(zhí)行到了,對應(yīng)的關(guān)鍵字也被執(zhí)行替換了,我們隨便打開一份文檔檢驗一下吧:
ok,替換成功,大功告成。
結(jié)語
小伙伴們,看似復(fù)雜的批量替換操作,其實一點兒都不難吧!用上Python這門神器,處理文檔簡直不要太方便~快去試試,在工作中展示你的魔法技能吧!
到此這篇關(guān)于Python批量替換多個Word文檔的多個關(guān)鍵字的方法的文章就介紹到這了,更多相關(guān)Python批量替換Word關(guān)鍵字內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PyQt5設(shè)置登錄界面及界面美化的實現(xiàn)
這篇文章主要介紹了PyQt5設(shè)置登錄界面及界面美化的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03基礎(chǔ)的十進制按位運算總結(jié)與在Python中的計算示例
按位運算是計算機學(xué)習(xí)中的基礎(chǔ),Python完全支持位運算符從而幾乎可以直接顯示出位運算的結(jié)果,這里我們稍微總結(jié)一下基礎(chǔ)的十進制按位運算總結(jié)與在Python中的計算示例2016-06-06python 項目目錄結(jié)構(gòu)設(shè)置
JAVA有標(biāo)準(zhǔn)的maven目錄結(jié)構(gòu),golang也有建議的目錄結(jié)構(gòu),那么我想python是不是也有一個比較好的目錄結(jié)構(gòu)組織方式呢2020-02-02Python tkinter庫繪制春聯(lián)和福字的示例詳解
馬上要過年了,這篇文章將用到Python中的tkinter庫來寫一副春聯(lián)&福字送給大家。文中的實現(xiàn)方法講解詳細,感興趣的小伙伴可以試一試2022-01-01