python读取 doc/docx文档(非结构化数据)

windows下处理doc/docx文档

系统环境:win10+python3.5.2
使用第三方库python-docx读取文档
python-docx官方文档:https://python-docx.readthedocs.io/en/latest/
安装:pip install python-docx
导入:import docx
注意:python-docx只能处理word2007以后的版本(.docx)

1.读取.docx文档

import docx
#打开文档
doc=docx.Document("test.docx")
#获取文档段落 返回list
paragraphs=doc.paragraphs
for p in paragraphs:
	print(p.text)	

在这里插入图片描述
2.读取.doc文档 需要转换为.docx格式

from win32com.client import Dispatch
#打开word应用程序
wd=Dispatch("Word.application")
#后台运行
wd.Visible=0
wd.DisplayAlerts=0
#打开doc文档,必须给一个绝对路径
doc=wd.Documents.Open(r"绝对路径.doc")
#另存为docx
doc.SaveAs(r"绝对路径.docx",12)#12表示docx格式
#关闭文档
doc.Close()
#退出word应用
wd.Quit()

然后直接读取docx文档就行了。

linux下处理doc/docx文档

1.python-docx库 处理docx文档
同windows系统,在linux下也可以通过python-docx库直接操作.docx文档,这里主要讲解处理.doc文档
2.python处理.doc文档
由于python的库对.doc文档没有很好的支持,这里采用转换 .doc 文档为 .txt 的方式。
使用的工具:unoconv 依赖LibreOffice uno接口进行格式转换
安装方式如下:
$ sudo apt install unoconv

转换方式
$ unoconv -f txt test.doc
帮助信息
$unoconv -h
同级目录下会生成一个test.txt文本文件
然后通过python直接操作txt文件即可
但是这里也可能会出现一直阻塞的问题,可能是文档格式问题

另一种直接使用LibreOffice转换:
$ libreoffice --convert-to txt --outdir txt_data/ --headless test.doc
使用libreoffice的非GUI模式转换格式

猜你喜欢

转载自blog.csdn.net/weixin_45228198/article/details/113479060