Python获取docx文档里的批注

    xiaoxiao2025-06-11  43

    注意:该作者博客已迁移至https://buxianshan.xyz

    使用Python-docx库可以很方便的处理docx文件(官方文档)

    但是有些隐含的信息Python-docx库好像无法读取,比如docx文档里的批注

    下面介绍一种用python获取docx文档批注的方法

    首先区分doc文件和docx文件

    以前Office产品中Word用.doc文件格式,这种二进制格式很难与其他软件兼容 。docx是Microsoft Office2007之后版本使用的,用新的基于XML的压缩文件格式取代了以前默认文件格式,在传统的文件名扩展名后面添加了字母“x”(即“.docx”取代“.doc”、“.xlsx”取代“.xls”、“.pptx”取代“.ppt”)。

    docx格式的文件本质上是一个ZIP文件。将一个docx文件的后缀改为ZIP后是可以用解压工具打开或是解压的。事实上,Word2007的基本文件就是ZIP格式的,他可以算作是docx文件的容器。

    比如有一个test.docx文件

    内容如下(包含两个批注) 把它后缀名改为.zip

    解压test.zip

    打开解压后的文件,可以看到原docx文件被分成了好多xml文件

    原docx文件的信息都包含在这些xml文件中,比如正文包含在word/document.xml中

    通过查找发现批注被保存在了word/comments.xml

    如此,我们便可以很方便的用python获取批注

    首先解压docx文件然后用BeautifulSoup解析word/comments.xml提取批注信息

    代码如下:

    from zipfile import ZipFile from bs4 import BeautifulSoup document = ZipFile('test.docx') xml = document.read("word/comments.xml") wordObj = BeautifulSoup(xml.decode("utf-8"), features="html.parser") texts = wordObj.findAll("w:t") for text in texts: print(text.text)

    输出:

    (同理也可以提取其它信息)

    参考:

    https://blog.csdn.net/qq_20183489/article/details/76736089https://baike.baidu.com/item/docx/6517348?fr=aladdin
    最新回复(0)