我正在尝试使用python-docx模块替换文件中的单词,并警告新文件,新文件必须具有与旧文件完全相同的格式,但替换了单词。我应该怎么做?
docx模块具有一个saveocx,它需要7个输入:
除了替换的单词,我如何保持原始文件中的所有内容相同?
看起来,Docx for Python并不意味着要存储带有图像,标头…的完整Docx,而仅包含文档的内部内容。因此,没有简单的方法可以做到这一点。
Howewer,这是您的操作方法:
首先,看看docx标签Wiki:
它说明了如何解压缩docx文件:这是典型文件的外观:
+--docProps | + app.xml | \ core.xml + res.log +--word //this folder contains most of the files that control the content of the document | + document.xml //Is the actual content of the document | + endnotes.xml | + fontTable.xml | + footer1.xml //Containst the elements in the footer of the document | + footnotes.xml | +--media //This folder contains all images embedded in the word | | \ image1.jpeg | + settings.xml | + styles.xml | + stylesWithEffects.xml | +--theme | | \ theme1.xml | + webSettings.xml | \--_rels | \ document.xml.rels //this document tells word where the images are situated + [Content_Types].xml \--_rels \ .rels
docx仅在 opendocx* 方法中获得文档的一部分 *
def opendocx(file): '''Open a docx file, return a document XML tree''' mydoc = zipfile.ZipFile(file) xmlcontent = mydoc.read('word/document.xml') document = etree.fromstring(xmlcontent) return document
它仅获取document.xml文件。
我建议您做的是:
如果您安装了node.js,则被告知我已经在DocxGenJS(它是docx文档的模板引擎)上工作,该库正在积极开发中,并将作为节点模块尽快发布。