【发布时间】:2022-01-13 13:35:28
【问题描述】:
我的目标是替换word文件中的一些特定内容,然后将文件保存到旧目录。我想替换同一个word文件并生成多个文件。我使用 for 循环,它未能生成 3 个文件而不是仅 1 个文件。我仍然看不出问题出在哪里。有人可以帮助我吗? 代码是这样的:
from docx import Document
import os
def main():
path = r'C:\Users\Sharon.X.Fang\Desktop'
EXPERT_NAME = ['Yang','Xie','Wang']
template_file_path = path+os.sep+'to Mr.Xie-invitation.docx'
i = 0
for name in EXPERT_NAME:
for i in range(3):
output_file_path = path+os.sep+str(i)+'to Mr.'+name+'-invitation.docx'
i = i + 1
variables = {
"${EXPERT_NAME}": "Mr.Xie",
"${Fee}": "1,000",
"${Q_1}": "What is your hobby?",
"${Q_2}": "How are you?",
}
template_document = Document(template_file_path)
for variable_key, variable_value in variables.items():
for paragraph in template_document.paragraphs:
replace_text_in_paragraph(paragraph, variable_key, variable_value)
template_document.save(output_file_path)
def replace_text_in_paragraph(paragraph, key, value):
if key in paragraph.text:
paragraph.text = paragraph.text.replace(key, value)
if __name__ == '__main__':
main()
【问题讨论】:
标签: python for-loop directory docx python-docx