Python读取word文档内容
1,利用python读取纯文字的word文档,读取段落和段落里的文字。
先读取段落,代码如下:
1 '''
2 #利用python读取word文档,先读取段落
3 '''
4 #导入所需库
5 from docx import Document
6
7 #打开word文档
8 document = Document("D:/路径/长恨歌.docx")
9
10 #获取所有段落
11 all_paragraphs = document.paragraphs
12 #打印看看all_paragraphs是什么东西
13 print(type(all_paragraphs)) #<class 'list'>,打印后发现是列表
14 #是列表就开始循环读取
15 for paragraph in all_paragraphs:
16 #打印每一个段落的文字
17 print(paragraph.text)
效果:
再读取段落里的内容,代码如下:
1 '''
2 #利用python读取word文档
3 '''
4 #导入所需库
5 from docx import Document
6
7 #打开word文档
8 document = Document("D:/路径/长恨歌.docx")
9
10 #获取所有段落
11 all_paragraphs = document.paragraphs
12 #打印看看all_paragraphs是什么东西
13 print(type(all_paragraphs)) #<class 'list'>,打印后发现是列表
14 #是列表就开始循环读取
15 for paragraph in all_paragraphs:
16 #打印每一个段落的文字
17 #print(paragraph.text)
18 #循环读取每个段落里的run内容
19 for run in paragraph.runs:
20 print(run.text) #打印run内容
效果如下:
其实都准确的获取了文字内容,但是paragraph是保留了word文档里的换行符,而run是没有保留的。
2,利用python读取纯表格文档,那要读取的文字都是存储在单元格里,需要读取单元格里的内容:
1 '''
2 #利用python读取word文档,表格文档
3 '''
4 #导入所需库
5 from docx import Document
6
7 #打开文件
8 document = Document("D:/路径/长恨歌-表格.docx")
9 #获取文档所有表格
10 all_tables = document.tables
11
12 #打印all_tables类型
13 print(type(all_tables)) #得到<class 'list'>,即列表
14 #开始循环读取表格列表
15 for table in all_tables:
16 #循环读取表格的每一行
17 for row in table.rows:
18 #print(row)
19 #循环读取表格的每一个单元格
20 for cell in row.cells:
21 #打印单元格里的内容
22 print(cell.text) #打印
3,利用python读取word文档,文档是表格加文字组合而成的。这个就设计word文档格式问题了。将要处理的word文档后缀名改为zip,发现也可以打开,里面有几个文件如图:
点开word目录,发现有个document.xml,这就是我们要处理的文件。
代码开始:
1 '''
2 #利用python读取word文档,表格文档
3 '''
4 #导入所需库
5 import zipfile #解压文件库
6 #先将要处理的word文档用zipfile进行压缩
7 word = zipfile.ZipFile('D:/路径/长恨歌-文字+表格.docx')
8
9 #找到要处理的xml文件并以utf-8的格式读取
10 xml = word.read('word/document.xml').decode('utf-8')
11 #打印看看
12 #print(type(xml)) #字符串
13 #print(xml) #打印整个字符串
14 #接下来分割字符串并存储到列表中
15 xml_list = xml.split('<w:t>') #以字符串<w:t>进行分割字符串
16 #打印看是否符合预期
17 #print(type(xml_list)) #是列表
18 #print(xml_list) #列表内容
19
20 #开始切片,找标签</w:t>
21 text_list = [] #新建空list用以存储切出来的数据
22 #开始循环读取列表xml_list
23 for i in xml_list:
24 #条件查找
25 if i.find('</w:t>') + 1: #切片查找是如果没找到是会返回-1,我们+1让他返回0,再运行else分支
26 text_list.append(i[:i.find('</w:t>')]) #如果不是返回0就把找到的依次追加到text_list末尾
27 else:
28 pass
29 #print(text_list)
30 #再将得到的列表拆分为字符串
31 text = ''.join(text_list) #以空字符串为间隔,将列表拆分为字符串
32 print(text)
第三个表格加文字的取出文字有点绕,多处理几遍就行了。
Python读取word文档内容的更多相关文章
- Python读取word文档(python-docx包)
最近想统计word文档中的一些信息,人工统计的话...三天三夜吧 python 不愧是万能语言,发现有一个包叫做 docx,非常好用,具体查看官方文档:https://python-docx.read ...
- C#读取Word文档内容代码
首先要添加引用com组件:然后引用: using Word = Microsoft.Office.Interop.Word; 获取内容: /// /// 读取 word文档 返回内容 /// //// ...
- ASP 读取Word文档内容简单示例
以下通过Word.Application对象来读取Doc文档内容并显示示例. 下面进行注册Word组件:1.将以下代码存档命名为:AxWord.wsc XML code复制代码 <?xml ve ...
- 2018-10-04 [日常]用Python读取word文档中的表格并比较
最近想对某些word文档(docx)的表格内容作比较, 于是找了一下相关工具. 参考Automate the Boring Stuff with Python中的word部分, 试用了python-d ...
- python读取word文档
周末需要做一个统计word文档字数的问题,刚开始以为很简单,因为之前做过excel表格相关的任务,所以认为利用扩展模块应该比较简单. 通过搜索,确实搜到了一个python操作word的模块,pytho ...
- 使用NPOI读取Word文档内容并进行修改
前言 网上使用NPOI读取Word文件的例子现在也不少,本文就是参考网上大神们的例子进行修改以适应自己需求的. 参考博文 http://www.cnblogs.com/mahongbiao/p/376 ...
- Python读取本地文档内容并发送邮件
当需要将本地某个路径下的文档内容读取后并作为邮件正文发送的时候可以参考该文,使用到的模块包括smtplib,email. #! /usr/bin/env python3 # -*- coding:ut ...
- ASP 读取Word文档内容简单示例_组件开发_新兴网络_20161014161610.jpg
- 使用python编辑和读取word文档
python调用word接口主要用到的模板为python-docx,基本操作官方文档有说明. python-docx官方文档地址 使用python新建一个word文档,操作就像文档里介绍的那样: fr ...
随机推荐
- Jmeter-BeanShell断言的运用一(JSON响应数据与数据库比对)
前言 最近在学习BeanShell断言,发现有点强大哈,只要会写代码,就没有什么是断言不了的,哈哈哈,不过我现在只会写点蹩脚的代码,下面将介绍下如何将返回的JSON数据与数据库数据做对比. 注:本次涉 ...
- Verilog 分频器
verilog设计进阶 时间:2014年5月6日星期二 主要收获: 1. 自己动手写了第一个verilog程序. 题目: 利用10M的时钟,设计一个单周期形状如下的周期波形. 思考: 最开始的想法是: ...
- Happy Tree Friends——团队展示
这个作业属于哪个课程 软件工程 (福州大学至诚学院 - 计算机工程系) 团队名称 Happy Tree Friends 这个作业要求在哪里 团队作业第一次 这个作业的目标 团队合作 作业正文 正文 其 ...
- Centos7安装Kubernetes k8s v1.16.0 国内环境
一. 为什么是k8s v1.16.0? 最新版的v1.16.2试过了,一直无法安装完成,安装到kubeadm init那一步执行后,报了很多错,如:node xxx not found等.centos ...
- 如何自动化你的Excel导入导出(Java)?
GitHub | 中文 | English | 博客 为什么使用AutoExcel? Excel导入导出在软件开发中非常常见,只要你接触过开发,就一定会遇到.相信很多人会跟我一样选择用Apache P ...
- 第三十八章、PyQt输入部件:QKeySequenceEdit快捷键输入部件使用案例
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.功能简介 Key Sequence Edit输 ...
- 老猿学5G扫盲贴:N6接口用户平面协议栈对应的网络分层模型
在网络通信模型中,都对应有分层的网络结构,如开放式系统互联(OSI)的七层模型(物理层.数据链路层.网络层.传输层.会话层.表示层和应用层)以及TCP/IP四层(网络接口层.网络层.传输层和应用层)模 ...
- Python基础概念学习遇到的问题
Python运算符的优先级是怎样的? Python中的迭代是什么意思? Python中的列表解析和列表推导是一回事吗? Python中可迭代对象是什么? Python中容器指的是什么? 关于Pytho ...
- PyQt(Python+Qt)学习随笔:Qt Designer中主窗口对象documentMode属性
documentMode属性表示当前主窗口是否启用文档模式,如果是则主窗口的选项卡部件会以适合操作文档的模式呈现,这类似于macOS上的文档模式. 设置此属性时,界面上不会呈现选项卡部件框架.此模式当 ...
- XSS挑战赛(2)
进入第六关 简单判断过滤情况 <>script"'/ 查看源代码 可以看到第二个红框部分跟之前类似,闭合双引号尝试进行弹窗 "><script>ale ...