Python读取word⽂档内容1,利⽤python读取纯⽂字的word⽂档,读取段落和段落⾥的⽂字。
先读取段落,代码如下:
1'''
2    #利⽤python读取word⽂档,先读取段落
3'''
4#导⼊所需库
5from docx import Document
6
7#打开word⽂档
8 document = Document("D:/路径/长恨歌.docx")
9
10#获取所有段落
11 all_paragraphs = document.paragraphs
12#打印看看all_paragraphs是什么东西
13print(type(all_paragraphs)) #<class 'list'>,打印后发现是列表
14#是列表就开始循环读取
15for paragraph in all_paragraphs:
16#打印每⼀个段落的⽂字
)
效果:
再读取段落⾥的内容,代码如下:
1'''
2    #利⽤python读取word⽂档
python处理xml文件
3'''
4#导⼊所需库
5from docx import Document
6
7#打开word⽂档
8 document = Document("D:/路径/长恨歌.docx")
9
10#获取所有段落
11 all_paragraphs = document.paragraphs
12#打印看看all_paragraphs是什么东西
13print(type(all_paragraphs)) #<class 'list'>,打印后发现是列表
14#是列表就开始循环读取
15for paragraph in all_paragraphs:
16#打印每⼀个段落的⽂字
17#)
18#循环读取每个段落⾥的run内容
19for run in paragraph.runs:
) #打印run内容
效果如下:
其实都准确的获取了⽂字内容,但是paragraph是保留了word⽂档⾥的换⾏符,⽽run是没有保留的。
2,利⽤python读取纯表格⽂档,那要读取的⽂字都是存储在单元格⾥,需要读取单元格⾥的内容: 1'''
2    #利⽤python读取word⽂档,表格⽂档
3'''
4#导⼊所需库
5from docx import Document
6
7#打开⽂件
8 document = Document("D:/路径/长恨歌-表格.docx")
9#获取⽂档所有表格
10 all_tables = document.tables
11
12#打印all_tables类型
13print(type(all_tables)) #得到<class 'list'>,即列表
14#开始循环读取表格列表
15for table in all_tables:
16#循环读取表格的每⼀⾏
17for row ws:
18#print(row)
19#循环读取表格的每⼀个单元格
20for cell lls:
21#打印单元格⾥的内容
) #打印
3,利⽤python读取word⽂档,⽂档是表格加⽂字组合⽽成的。这个就设计word⽂档格式问题了。将要处理的word⽂档后缀名改为zip,发现也可以打开,⾥⾯有⼏个⽂件如图:
点开word⽬录,发现有个l,这就是我们要处理的⽂件。
代码开始:
1'''
2    #利⽤python读取word⽂档,表格⽂档
3'''
4#导⼊所需库
5import zipfile #解压⽂件库
6#先将要处理的word⽂档⽤zipfile进⾏压缩
7 word = zipfile.ZipFile('D:/路径/长恨歌-⽂字+表格.docx')
8
9#到要处理的xml⽂件并以utf-8的格式读取
10 xml = ad('l').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
23for i in xml_list:
24#条件查
25if i.find('</w:t>') + 1: #切⽚查是如果没到是会返回-1,我们+1让他返回0,再运⾏else分⽀
26        text_list.append(i[:i.find('</w:t>')]) #如果不是返回0就把到的依次追加到text_list末尾
27else:
28pass
29#print(text_list)
30#再将得到的列表拆分为字符串
31 text = ''.join(text_list) #以空字符串为间隔,将列表拆分为字符串
32print(text)
第三个表格加⽂字的取出⽂字有点绕,多处理⼏遍就⾏了。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。