擁有一個固定的word文件,類似模板
比如寫一個測試計劃,大多數內容都是通用,只需要改改軟件名稱,人員等等,數量多起來的情況下就可以使用代碼
# 導入 Document 類,用于處理 Word 文檔
from docx import Document
# 導入 re 模塊,用于進行正則表達式操作
import re# 定義一個函數,用于替換 Word 文檔中 {{}} 包裹的參數
def replace_parameters_in_docx(file_path, parameters):# 打開指定路徑的 Word 文檔doc = Document(file_path)# 開始替換段落中的參數# 遍歷文檔中的每一個段落for paragraph in doc.paragraphs:# 遍歷段落中的每一個運行對象(文本塊)for run in paragraph.runs:# 獲取當前運行對象的文本內容text = run.text# 遍歷參數字典,其中 param 是參數名,value 是參數值for param, value in parameters.items():# 編譯正則表達式,用于匹配 {{param}} 格式的字符串pattern = re.compile(rf'{{{{{param}}}}}')# 使用正則表達式將匹配到的參數替換為對應的值text = pattern.sub(str(value), text)# 將替換后的文本重新賦值給當前運行對象run.text = text# 開始替換頁眉中的參數# 遍歷文檔的每一個節(文檔可能包含多個節)for section in doc.sections:# 遍歷當前節的頁眉中的每一個段落for header in section.header.paragraphs:# 遍歷頁眉段落中的每一個運行對象for run in header.runs:# 獲取當前運行對象的文本內容text = run.text# 遍歷參數字典,進行參數替換for param, value in parameters.items():# 編譯正則表達式,用于匹配 {{param}} 格式的字符串pattern = re.compile(rf'{{{{{param}}}}}')# 使用正則表達式將匹配到的參數替換為對應的值text = pattern.sub(str(value), text)# 將替換后的文本重新賦值給當前運行對象run.text = text# 開始替換頁腳中的參數# 遍歷文檔的每一個節for section in doc.sections:# 遍歷當前節的頁腳中的每一個段落for footer in section.footer.paragraphs:# 遍歷頁腳段落中的每一個運行對象for run in footer.runs:# 獲取當前運行對象的文本內容text = run.text# 遍歷參數字典,進行參數替換for param, value in parameters.items():# 編譯正則表達式,用于匹配 {{param}} 格式的字符串pattern = re.compile(rf'{{{{{param}}}}}')# 使用正則表達式將匹配到的參數替換為對應的值text = pattern.sub(str(value), text)# 將替換后的文本重新賦值給當前運行對象run.text = text# 開始替換表格中的參數# 遍歷文檔中的每一個表格for table in doc.tables:# 遍歷表格中的每一行for row in table.rows:# 遍歷行中的每一個單元格for cell in row.cells:# 遍歷單元格中的每一個段落for paragraph in cell.paragraphs:# 遍歷段落中的每一個運行對象for run in paragraph.runs:# 獲取當前運行對象的文本內容text = run.text# 遍歷參數字典,進行參數替換for param, value in parameters.items():# 編譯正則表達式,用于匹配 {{param}} 格式的字符串pattern = re.compile(rf'{{{{{param}}}}}')# 使用正則表達式將匹配到的參數替換為對應的值text = pattern.sub(str(value), text)# 將替換后的文本重新賦值給當前運行對象run.text = text# 保存修改后的文檔# 定義輸出文件的名稱output_file = 'output.docx'# 將修改后的文檔保存為指定名稱的文件doc.save(output_file)# 返回保存后的文件路徑return output_file# 程序入口
if __name__ == "__main__":# 定義要處理的 Word 文檔的路徑file_path = 'your_test_plan.docx'# 定義要替換的參數和對應的值,存儲在字典中parameters = {'param1': 'value1','param2': 'value2'}# 調用替換函數,進行參數替換,并獲取替換后的文件路徑output_file = replace_parameters_in_docx(file_path, parameters)# 打印替換完成的提示信息,包含保存后的文件路徑print(f"替換完成,結果保存到 {output_file}")