我收到了一系列文件夹,其中包含大量 .xml 格式的 Word 文档。它们每个都包含一些 VBA 代码,但所有代码都已经运行过,所以我不需要保留它。
我需要打印每个文件夹中的所有文件,但由于网络上 XML 文件的限制,我无法简单地从 Windows 资源管理器中批量打印它们,因此我需要将它们转换为 .docx(或 .doc)第一的。
我该怎么做呢?我使用 python-docx 尝试了一个简单的 python 脚本:
import os
from docx import Document
folderPath=<folderpath>
fileNamesList=os.listdir(folderPath)
for xmlFileName in fileNamesList:
currentDoc=Document(os.path.join(folderPath,xmlFileName))
docxFileName=xmlFileName.replace('.xml','.docx')
currentDoc.save(os.path.join(folderPath,docxFileName))
currentDoc.close()
这给出:
docx.opc.exceptions.PackageNotFoundError: Package not found at <first file name>.xml
我猜这是因为 python-docx 并不意味着打开 .xml 文件,但这是一个相当没有受过教育的猜测。搜索这个错误,我所能找到的只是它没有正确安装(据我所知)或使用 .doc 文件而不是 .docx 的问题。
我只是错误地使用了 python-docx 吗?如果没有,我应该使用更合适的软件包或技术吗?
目前尚不清楚这些文件是什么类型.xml
文件是,但我怀疑它们是 Word 2003 中使用的过渡格式,它是基于 XML 的,但不是自 Word 2007 以来 Word 文档中使用的开放打包约定 (OPC) 格式。
python-docx
现在或将来都不会阅读这些内容,因此您需要将它们转换为.docx
直接格式化或解析 XML。
如果我有可用的 Windows,我想我会使用 VBA 编写一个简短的转换脚本,然后使用.docx
文件使用python-pptx
。我首先看看Word是否可以加载.xml
文件并从那里开始。
您也许能够找到一个实用程序来进行批量转换,但我在快速搜索中没有找到任何实用程序。
如果您感兴趣的只是一次性打印,并且 Word 将加载文件,那么无需转换步骤的 VBA 脚本可能是一个不错的选择。python-docx
不打印.docx
文件,只能读取和写入它们。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)