Python获取docx文档里的批注
注意:该作者博客已迁移至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 BeautifulSoupdocument = 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/76736089
- https://baike.baidu.com/item/docx/6517348?fr=aladdin
Python获取docx文档里的批注相关推荐
- python获取docx文档的内容(文本)
首先下载第三方库python-docx: pip install python-docx(在py文件里面导入的时候是import docx) 简单的说,docx里面的每一个段落都是一个paragrap ...
- Python操作docx文档设置居中并创建表格
功能描述:本文代码使用python-docx操作docx文档,添加一段文字并设置居中对齐,添加一个表格并为所有单元格设置文字. from docx import Document from docx. ...
- Python读取docx文档的内容
Python读取docx文档的内容 下载好解析docx文档的包,Python-docx是专门针对于word文档的一个模块. doc.paragraphs 段落集合 doc.tables 表格集合 do ...
- Python3-word文档操作(二):利用python获取word文档的内容
上一篇,学习了是用python的docx库创建一个word文档,并且编辑了标题和正文.本篇继续python操作word之旅:利用python来获取word文档的内容. python脚本: # -*- ...
- python——读取docx文档wordcloud生成词云并进行词频统计
文章目录 环境准备 导入库 读取docx并进行分词 词频 词云 设置背景图片(可选) 生成词云 保存词云并显示 环境准备 # 不是docx,是python-docx!!!!!!! pip instal ...
- Python把docx文档中的题库导入SQLite数据库
#本文所用的docx文档题库包含很多段,每段一个题目,格式为: 问题.(答案) #与之对应的数据库datase.db中tiku表包含kechengmingcheng,zhangjie,timu,d ...
- Python修改docx文档格式
任务:原docx文档修改标题和页面宽高. 步骤:1.原docx文档解压为document.xml(见最后) 2.通过xml解释替换标签属性值,保存为document_format.xml 3.还原do ...
- python实现docx文档首行缩进2字符
下面是一个示例代码,它使用 python-docx 库来实现 docx 文档的首行缩进 2 字符: from docx import Document# 打开一个 docx 文档 document = ...
- python-docx获取docx文档多级目录
想要从docx文档中读取各层目录,即便是翻了官方文档,也没有找到对应内容,最后看了代码,总算是略有所得,写篇文章记录一下. python-docx中与标题相关有一个函数,添加标题,add_headin ...
最新文章
- 方法功能从无参方法、含参方法到重载方法
- 数据结构 — 平衡二叉树
- Android 7.0 多窗口模式
- JavaScript基础04【逻辑、复制、关系、相等运算符、Unicode编码表】
- iOS Base64转码(使用ios7系统自带编码库 和 GMTBase64 两种方式)
- 如何在邮件系统中使用自己的域名?
- hbase简介(大数据技术)
- oracle 10g冷备份恢复处理详细步骤
- java note项目_Java Request.setNote方法代码示例
- Linux shell 编程(四):变量
- 【科研】计算社会科学与复杂科学
- C-Lodop使用及常见错误排查
- 日常使用的图片文件格式及各自的区别,JPG/PNG/GIF/RAW/WebP/HEIC
- 「计算机日常」笔吧测评室笔记本测评科普视频笔记
- 《人生的智慧》-叔本华著[韦启昌-(译)]
- vysor技术实现原理(投屏不包括鼠标控制)
- 现有的人脸数据库介绍及下载链接
- 微信开发-隐藏微信浏览器顶部菜单
- bzoj4476: [Jsoi2015]送礼物
- android 蓝牙 遥控 电脑,Android系统适配蓝牙遥控器键值
热门文章
- SourceTree 提交报错 闪退
- 字符串倒序输出 递归和正常写法
- 华为 android p系统,基于Android P打造 华为EMUI 9.0发布:流畅度提升12.9%
- 插件进入显示:{“errcode“:40029,“errmsg“:“invalid code,hints:[req_id:rljdFLyWf-jkkUpa]“},无法体验,请修改后再提交审核(测试环境
- 艾司博讯:拼多多运费险怎么赔付
- 多功能剪辑,处理多个视频边框虚化并有闪烁光晕的效果
- 【目标检测】|ECCV2020-HCE-全局Roi Align目标检测网络 | Hierarchical Context Embedding for Region-based Object Detec
- 天梵古法健康知识普及:(一)手太阴肺经经穴
- 《opencv学习笔记》-- 矩阵归一化 normalize()函数
- 工作劳累,经常对着电脑,脸上起来很多痘痘,用什么办法可以治疗?