pythondocx替换⽂字_在.docx⽂件-Python中查和替换⽂本我⼀直在寻⼀种⽅法来查和替换docx⽂件中的⽂本,但运⽓不好。我试过docx模块,但没能成功。最后,我使⽤zipfile模块并替换docx存档中的l⽂件,得出了下⾯描述的⽅法。为此,您需要⼀个模板⽂档(docx),其中的⽂本要替换为不可能与⽂档中任何其他现有或未来⽂本匹配的唯⼀字符串(例如,“在XXXMEETDATEXXX上与xxxclientnamexx的会议进⾏得⾮常顺利。”)。import zipfile
replaceText = {"XXXCLIENTNAMEXXX" : "Joe Bob", "XXXMEETDATEXXX" : "May 31, 2013"}
templateDocx = zipfile.ZipFile("C:/Template.docx")
newDocx = zipfile.ZipFile("C:/NewDocument.docx", "a")
with act("l", "C:/")) as tempXmlFile:
tempXmlStr = ad()
for key in replaceText.keys():
tempXmlStr = place(str(key), (key)))
with open("C:/l", "w+") as tempXmlFile:
tempXmlFile.write(tempXmlStr)
for file in templateDocx.filelist:
if not file.filename == "l":
newDocx.writestr(file.filename, ad(file))
newDocx.write("C:/l", "l")
python处理xml文件templateDocx.close()
newDocx.close()
我的问题是这种⽅法有什么问题?我对这东西还不太熟悉,所以我觉得应该有⼈已经知道了。这让我相信这种⽅法有点不对劲。但它有效!我错过了什么?
是的。
以下是我的思想过程的演练,供其他尝试学习这些内容的⼈参考:
步骤1)准备⼀个Python字典,其中包含要替换为键的⽂本字符串和要替换为项的新⽂本(例如{“XXXCLIENTNAMEXXX”:“Joe Bob”,“XXXMEETDATEXXX”:“2013年5⽉31⽇”})。
步骤2)使⽤zipfile模块打开模板docx⽂件。
步骤3)使⽤追加访问模式打开新的docx⽂件。
步骤4)从模板docx⽂件中提取l(所有⽂本所在的位置),并将该xml读取到⽂本字符串变量。
步骤5)使⽤for循环将xml⽂本字符串中字典中定义的所有⽂本替换为新⽂本。
步骤6)将xml⽂本字符串写⼊新的临时xml⽂件。
步骤7)使⽤for循环和zipfile模块将模板docx存档中的所有⽂件复制到新的docx存档中,l⽂件除外。
步骤8)将包含替换⽂本的临时xml⽂件作为新的l⽂件写⼊新的docx存档。
步骤9)关闭模板和新的docx存档。
步骤10)打开新的docx⽂档,欣赏替换的⽂本!
--Edit--第7⾏和第11⾏缺少右括号“)”

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。