【发布时间】:2017-09-23 14:59:45
【问题描述】:
我收到了一系列文件夹,其中包含大量 .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 吗?如果没有,我应该使用更合适的包或技术吗?
【问题讨论】:
-
当文件不是有效的或空的docx文件时,会抛出这种异常
标签: python xml ms-word ms-office python-docx