python提取docx⽂档的信息(⽂本+表格)⽂章⽬录
⼀、说明:
本⽂的需求是提取docx⽂档⾥⾯的数据信息,包括⽂本和Excel表格信息。
经过⼀上午的搜索,⽬前到了⼀些⽂字,整理成⾃⼰需要的的代码。
⼆、提取数据
安装模块:
我这⾥直接命令安装即可。
pip install python-docx
1、提取⽂本内容:
这⾥只有按原的每⾏保存为⼀个⼤的字符串。
具体不废话了,直接上代码:
import docx
def extract_docx_text(docFile):
# 获取⽂档对象
document = docx.Document(docFile)
# 完整的text:
docx_text =""
for para in document.paragraphs:
docx_text += +'\n'
return docx_text
if __name__ =='__main__':
docFile ='W020200731560335069483.docx'
docx_text = extract_docx_text(docFile)
print("docx_text", docx_text)
效果图:
是根据每⾏的内容保存,还是原样的⾏保存⼀个⼤的字符串样式,⽅便后续需求区分开每⾏内容。
2、提取Excel表格内容:
我这⾥根据读取所有表格,然后根据每个表格进⾏弄成json格式,以表格的列名称作为key,值为列表。1)、每列数据作为⼀个list
columns = lumns
tables_i_json ={}
# 列标题
python怎么读取json文件columns_name_json ={}# ⽤来下⾯表格的⾏做铺垫使⽤
for columns_i in range(len(columns)):
tables_i_json[ll(0, columns_i).text]=[]
columns_name_json[columns_i]= ll(0, columns_i).text
for row_i in range(1,len(ws)):# 从表格第⼆⾏开始循环读取表格数据
for columns_i in range(len(columns)):
tables_i_json[columns_name_json[columns_i]].append(ll(row_i, columns_i).text) return tables_i_json
def extract_docx_excel_data(docFile):
document = Document(docFile)# 读⼊⽂件
# print("document",dir(document))
tables = document.tables # 获取⽂件中的表格集
# print("dir", dir(document))
# print("tables", tables)
tables_json =[]
for tables_i in tables:
tables_i_json = extract_table_data(tables_i)
tables_json.append(tables_i_json)
print("tables_json",tables_json)
return tables_json
if __name__ =='__main__':
docFile ='W020200731560335069483.docx'
tables_json = extract_docx_excel_data(docFile)
2)、每⾏⼀个json:
columns = lumns
"""每列作为列表"""
# tables_i_json = {}
# # 列标题
# columns_name_json = {} # ⽤来下⾯表格的⾏做铺垫使⽤
# for columns_i in range(len(columns)):
# tables_i_json[ll(0, columns_i).text] = []
# columns_name_json[columns_i] = ll(0, columns_i).text
#
# for row_i in range(1, len(ws)): # 从表格第⼆⾏开始循环读取表格数据
# for columns_i in range(len(columns)):
# tables_i_json[columns_name_json[columns_i]].append(ll(row_i, columns_i).text) """每⾏⼀个json"""
table_data =[]
# # 列标题
head_name =[]
for columns_i in range(len(columns)):
head_name.append(ll(0, columns_i).text)
for row_i in range(1,len(ws)):# 从表格第⼆⾏开始循环读取表格数据
row_json ={}
for columns_i in range(len(columns)):
row_json[head_name[columns_i]]= ll(row_i, columns_i).text
table_data.append(row_json)
return table_data
def extract_docx_excel_data(docFile):
document = Document(docFile)# 读⼊⽂件
# print("document",dir(document))
tables = document.tables # 获取⽂件中的表格集
# print("dir", dir(document))
# print("tables", tables)
tables_json =[]
for tables_i in tables:
tables_i_json = extract_table_data(tables_i)
tables_json.append(tables_i_json)
print("tables_json",tables_json)
return tables_json
if __name__ =='__main__':
docFile ='W020200731560335069483.docx'
tables_json = extract_docx_excel_data(docFile)
直接上代码,⾃⼰更换⾃⼰的docFile ⽂件路径即可解决问题。
参考学习的⼀些⽂章:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论