打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
python怎么查找word文档,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)) #,打印后发现是列表

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)) #,打印后发现是列表

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)) #得到,即列表

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('') #以字符串进行分割字符串

16 #打印看是否符合预期

17 #print(type(xml_list)) #是列表

18 #print(xml_list) #列表内容

19

20 #开始切片,找标签

21 text_list = [] #新建空list用以存储切出来的数据

22 #开始循环读取列表xml_list

23 for i in xml_list:

24 #条件查找

25 if i.find('') + 1: #切片查找是如果没找到是会返回-1,我们+1让他返回0,再运行else分支

26 text_list.append(i[:i.find('')]) #如果不是返回0就把找到的依次追加到text_list末尾

27 else:

28 pass

29 #print(text_list)

30 #再将得到的列表拆分为字符串

31 text = ''.join(text_list) #以空字符串为间隔,将列表拆分为字符串

32 print(text)

第三个表格加文字的取出文字有点绕,多处理几遍就行了。

标签:xml,word,读取,Python,text,文档,print

来源: https://www.cnblogs.com/mafu/p/13968857.html

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Python|读取word文档表格内容
编程语言Python 操作 Word
【Python小技巧】多个Word文档合并?Python帮你搞定!
Python自动化办公系列之Python操作Word
教你怎么使用Python对word文档进行操作
用Python读写word文档
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服