从python中的txt文件写入docx文件

从python中的txt文件写入docx文件,python,utf-8,docx,Python,Utf 8,Docx,我一直在尝试编写python代码,用从互联网上获取的数据填充word表单。我将数据写在一个txt文件中,现在正试图用以下代码填充word文件: import zipfile import os import tempfile import shutil import codecs def getXml(docxFilename,ReplaceText): zip = zipfile.ZipFile(open(docxFilename,"rb")) xmlString= zi

我一直在尝试编写python代码,用从互联网上获取的数据填充word表单。我将数据写在一个txt文件中,现在正试图用以下代码填充word文件:

import zipfile
import os
import tempfile
import shutil
import codecs



def getXml(docxFilename,ReplaceText):
    zip = zipfile.ZipFile(open(docxFilename,"rb"))
    xmlString= zip.read("word/document.xml")
    for key in ReplaceText.keys():
        xmlString = xmlString.replace(str(key), str(ReplaceText.get(key)))
    return xmlString

def createNewDocx(originalDocx,xmlString,newFilename):
    tmpDir = tempfile.mkdtemp()
    zip = zipfile.ZipFile(open(originalDocx,"rb"))
    zip.extractall(tmpDir)
    #3tmpDir=tmpDir.decode("utf-8")
    with open(os.path.join(tmpDir,"word/document.xml"),"w") as f:
        f.write(xmlString)
    filenames = zip.namelist()
    zipCopyFilename = newFilename
    with zipfile.ZipFile(zipCopyFilename,"w") as docx:
        for filename in filenames:
            docx.write(os.path.join(tmpDir,filename),filename)
    shutil.rmtree(tmpDir)

f=open('test.txt', 'r',)
text=f.read().split("\n")
print text[1]
Pavarde = text[1]
Replace = {"PAVARDE1":Pavarde}
createNewDocx("test.docx",getXml("test.docx",Replace),"test2.docx")
文件已创建,但我无法打开它

我得到以下错误:

Illegal xlm character
我的猜测是编码有问题,但我找不到解决办法