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模式转换格式