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

时间:2016-02-25 09:09:12

标签: python utf-8 docx

我一直试图让我的python代码用我从互联网上删除的数据填写一个单词。我在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

我的猜测是编码的东西,但我找不到解决方案。

0 个答案:

没有答案