gpt4 book ai didi

python - 将 .docx 文件中的变量替换为用户输入的变量

转载 作者:行者123 更新时间:2023-12-01 09:10:45 25 4
gpt4 key购买 nike

我正在做一个项目。我有一个创建的 .docx 模板。在其中,我在整个文档中有多个变量需要用用户输入的信息替换(某些变量在文档中被替换多次)。我有这个代码,是根据我之前使用过的 .txt 文件修改的。我无法获取 .docx 文件,使用用户输入的信息编辑变量并创建一个可以共享/打印的新文件。任何帮助,将不胜感激。

我尝试过使用python-docx,但可惜的是,我还没有完全理解这个概念并使其发挥作用。

示例代码如下:

from __future__ import with_statement
import fileinput

#def terms and ask user for imput
def loaDocOne():
words = ["[clientName]","[addressLine1]","[addressLine2]","[todaysDate]","[fileNum]","[originalClient]","[refNum]","[currentBal]","]
clientName = input('Enter Clients name: ')
addressLine1 = input('Enter Clients Address Line 1: ')
addressLine2 = input('Enter Clients Address Line 2: ')
todaysDate = input('Enter Todays Date: ')
fileNum = input('Enter File Number: ')
originalClient = input('Enter Original Client: ')
refNum = input('Enter Original Refrence Number: ')


#open file
def replaceFunc():
with open ('template.docx') as f:
for line in f:
line = line.replace("[clientName]",clientName)
line = line.replace("[addressLine1]",addressLine1 )
line = line.replace("[addressLine2]",addressLine2 )
line = line.replace("[todaysDate]",todaysDate)
line = line.replace("[fileNum]",fileNum )
line = line.replace("[originalClient]", originalClient)
line = line.replace("[refNum]",refNum )



#Find out if everything looks good to continue
def goOn():
doYouWantToContinue = input('Does Everything Look Correct? yes/no: ')
if doYouWantToContinue == 'yes':
replaceFunc()
else:
loaDocOne()




loaDocOne()
goOn()
replaceFunc()

此外,有没有办法获取输出的文件并使用用户提供的文件编号将其设为“document_name_'fileNum”?

最佳答案

使用python-docx模块是最简单的方法。使用该模块打开的文档的结构为 documented here ,而且我认为这很容易理解。

此代码打开一个文档,然后使用 str.replace 函数自动替换所有出现的某个字符串,并用替换的文本替换其中每个段落的现有文本。

from docx import Document

doc = Document('document.docx')

replacements = {
'%replace_me_1%': 'New text 1',
'%replace_me_2%': 'New text 2'
}

for paragraph in doc.paragraphs:
for key in replacements:
paragraph.text = paragraph.text.replace(key, replacements[key])

doc.save('document.docx')
<小时/>

用新名称保存文件应该很容易:

file_suffix = input()
doc.save('document_' + file_suffix + '.docx')

关于python - 将 .docx 文件中的变量替换为用户输入的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51665928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com