上一篇提到用python-docx读写.docx文章,但该模块并不能读取.doc文档,这里使用win32com模块,更高级,可以操作word,excel等office文档
一、安装
方法一:官网下载对应python版本的安装程序,网址为:https://sourceforge.net/projects/pywin32/files/pywin32/,下载完成后,双击安装即可
方法二:
pip install pywin32
二、填坑,使用报错:
AttributeError: module 'win32com' has no attribute 'client'
解决:改变导包方式 from win32com import client后可正常执行
三、读取doc/docx文档
from win32com.client import Dispatch
word = Dispatch('Word.Application') # 打开word应用程序
# word = DispatchEx('Word.Application') # 启动独立的进程
word.Visible = 0 # 后台运行,不显示
word.DisplayAlerts = 0 # 不警告
path = r'D:\test\1.doc' # 'D:\test\1.docx'
doc = word.Documents.Open(FileName=path, Encoding='gbk')
for para in doc.paragraphs:
print(para)
doc.Close()
word.Quit()
1.doc的文档内容如下:
输出结果如下:
四、将.doc转换成.docx文件
from win32com.client import Dispatch
word = Dispatch('Word.Application') # 打开word应用程序
# word = DispatchEx('Word.Application') # 启动独立的进程
word.Visible = 0 # 后台运行,不显示
word.DisplayAlerts = 0 # 不警告
doc = word.Documents.Open(r'D:\test\1.doc')
doc.SaveAs(r"D:\test\2.docx", 12) # 另存为后缀为".docx"的文件,其中参数12指doc文件
doc.Close()
word.Quit()