Python:读取 .doc、.docx 两种 Word 文件简述及“Word 未能引发事件”错误

 Python 中可以读取 word 文件的库有 python-docx 和 pywin32。

  优点 缺点
python-docx 跨平台 只能处理 .docx 格式,不能处理.doc格式
pywin32 仅限 windows 平台 .doc 和 .docx 都能处理

pywin32

这个库很强大,不仅仅可以读取 word,但是网上介绍用 pywin32 读取 .doc 的文章真不多,因为,真心不好用。

以下是 pywin32 读取 .doc 的代码示例,但是读取表格有问题,输出全是空,原因不明,因为不打算用所以没有深入研究。另外,如果表格中有纵向合并单元格,会报错:“无法访问此集合中单独的行,因为表格有纵向合并的单元格。”

复制代码
from win32com.client import Dispatch  word = Dispatch('Word.Application')     # 打开word应用程序 # word = DispatchEx('Word.Application') # 启动独立的进程 word.Visible = 0        # 后台运行,不显示 word.DisplayAlerts = 0  # 不警告  path = r'E:\abc\test.doc' doc = word.Documents.Open(FileName=path, Encoding='gbk')  for para in doc.paragraphs:     print(para.Range.Text)  for t in doc.Tables:     for row in t.Rows:         for cell in row.Cells:             print(cell.Range.Text)  doc.Close() word.Quit
复制代码

但是 pywin32 有另外一个功能,就是将 .doc 格式另存为 .docx 格式,这样我们就可以使用 python-docx 来处理了。

复制代码
def doc2docx(path):     w = win32com.client.Dispatch('
                        
关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信