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('

