使用python保存回docx xml文件

2024-03-29 12:53:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在docx文件上执行查找和替换,同时仍然保持格式。在

仔细阅读,最好的方法似乎是对文档的xml文件执行查找/替换。在

我可以加载xml文件并在其上查找/替换,但不确定如何将其写回。在

文件编号:

Hello {text}!

Python:

^{pr2}$

Tags: 文件方法text文档hello格式xml编号
3条回答

您正在尝试的是危险的,因为您正在较低级别处理一个高级别的docx文件。如果你真的想这么做,只需使用@shahvishal建议的overwriting file in ziparchive的提示。在

但除非您完全了解docx格式的所有细节,否则我的建议是:不要这样做。假设在一个内部字段或属性中有字符串{text}。您很可能会以意外的方式更改文件,从而立即或更糟地导致文件被销毁(Word无法再处理它)。在

如果您在安装了word的Windows计算机上进行处理,您当然可以尝试使用automation来处理microsoftword文件。不幸的是,我只是很久以前才这么做的,不能提供有用的链接。您需要:

  • pywin30模块常识
  • 充分了解MS/WORD的自动化接口。希望它的文档是很好的与许多例子,如果你有一个完整的安装Microsoft Office包括宏帮助

您真的希望使用一个库来读/写docx文件,而不是试图将它们作为原始XML处理。粗略地搜索了一下pypi模块docx,但我没有使用过这个模块,所以我不能认可它: https://pypi.python.org/pypi/docx/0.2.4

我有过(不幸的)处理来自其他编程语言的msoffice文档的操作经验,并且花时间寻找好的库真的有回报。在

有句老话说“不要重新发明轮子”,我认为在处理非琐碎的文件格式时,这是绝对正确的。如果有一个比较成熟的库来完成这项工作,请使用它!在

您需要替换zip归档文件中的文件。实现这一目标没有“简单”的方法。以下是一个应该有帮助的问题:

overwriting file in ziparchive

相关问题 更多 >