当前位置: 首页 > news >正文

python-docx顺序读取word内容

来源How to use Python iteration to read paragraphs, tables and pictures in word? · Issue #650 · python-openxml/python-docx (github.com)

from docx import Document
from docx.oxml.ns import qndef iter_block_items(parent):"""生成 `parent` 元素的每个块级元素,包括段落和表格。"""parent_elm = parent.element.bodyfor child in parent_elm.iterchildren():if child.tag == qn('w:p'):yield 'p', childelif child.tag == qn('w:tbl'):yield 'tbl', child# 打开文档
doc = Document("example.docx")paragraphs = doc.paragraphs
tables = doc.tablesparagraph_index = 0
table_index = 0for block_type, block in iter_block_items(doc):if block_type == 'p':paragraph = paragraphs[paragraph_index]print("Paragraph:", paragraph.text)paragraph_index += 1elif block_type == 'tbl':table = tables[table_index]table_index += 1if table:print("Table:")for n_r, row in enumerate(table.rows):print(f"    Row {n_r}: ")for n_c, cell in enumerate(row.cells):print(f"        Column {n_c}:", cell.text, end=' ')print()

相关文章:

  • 服务器主机托管服务内容科普
  • vscode连接ssh远程服务器
  • Jenkins 发测试邮件报错 553 Mail from must equal authorized user
  • SQL_CALC_FOUND_ROWS 和 FOUND_ROWS()实现对复杂sql实现分页与总条数查询
  • React实现H5手势密码
  • 水电站机组振动摆度在线监测系统详解
  • 南开大学漏洞报送证书【文尾有福利】
  • C#.Net筑基-集合知识全解
  • 《python》paramiko+paramiko实现远程通过ssh通道连接数据库
  • Spring MVC学习记录(基础)
  • leaflet,canvas渲染目标,可加载大批量数据
  • 配电室数据中心巡检3d可视化搭建的详细步骤
  • OCC介绍及框架分析
  • 在vue和uniapp中使用 websocket并封装js
  • Android GLES渲染——渲染回读
  • @angular/forms 源码解析之双向绑定
  • 【刷算法】求1+2+3+...+n
  • es的写入过程
  • express如何解决request entity too large问题
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • github指令
  • If…else
  • iOS | NSProxy
  • node入门
  • PAT A1092
  • Redis的resp协议
  • vagrant 添加本地 box 安装 laravel homestead
  • 工作手记之html2canvas使用概述
  • 关于字符编码你应该知道的事情
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 什么是Javascript函数节流?
  • 小程序开发中的那些坑
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • ‌Excel VBA进行间比法设计
  • ## 临床数据 两两比较 加显著性boxplot加显著性
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (SpringBoot)第七章:SpringBoot日志文件
  • (二)Linux——Linux常用指令
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (十三)Flask之特殊装饰器详解
  • (十一)图像的罗伯特梯度锐化
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • (转)LINQ之路
  • (转)memcache、redis缓存
  • (转)VC++中ondraw在什么时候调用的
  • (转)一些感悟
  • ***测试-HTTP方法
  • .net 7 上传文件踩坑
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)