You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

转换.doc文档为.txt时遭遇antiword错误的技术求助

.doc文件转换TXT时antiword错误的解决方案

问题原因

textract处理.doc格式文件时,依赖第三方工具antiword。出错的Windows 11系统要么未安装antiword,要么工具路径未添加到系统环境变量,导致Python无法调用该工具。

解决办法

方法一:安装并配置antiword

  • 下载适配Windows 11的antiword压缩包,解压到固定路径(如C:\antiword)
  • 打开系统环境变量设置:右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
  • 在「系统变量」的Path中添加antiword.exe所在文件夹的路径(如C:\antiword)
  • 重启命令行或Python IDE,使环境变量生效

方法二:改用pywin32调用Word COM组件(无需依赖antiword)

如果系统已安装Microsoft Word,可以用pywin32直接调用Word的COM接口读取.doc文件,兼容性更稳定。先安装依赖:

pip install pywin32 python-docx

替换后的代码:

import os
from docx import Document
import win32com.client as win32

def doc2txt(input_report_path, final_report_path):
    file_extension = os.path.splitext(input_report_path)[1].lower()

    try:
        text = ""
        if file_extension == ".docx":
            doc = Document(input_report_path)
            paragraphs = [paragraph.text for paragraph in doc.paragraphs]
            text = "\n".join(paragraphs)
        elif file_extension == ".doc":
            # 调用Word COM组件读取文档
            word = win32.gencache.EnsureDispatch('Word.Application')
            word.Visible = False  # 后台运行不显示Word窗口
            doc = word.Documents.Open(input_report_path)
            # 读取文档全部文本
            text = doc.Content.Text
            # 关闭文档和Word进程
            doc.Close(SaveChanges=False)
            word.Quit()
        else:
            print(f"不支持的文件格式:{file_extension}")
            return

        with open(final_report_path, "w", encoding="utf-8") as txt_file:
            txt_file.write(text)

    except Exception as e:
        print(f"转换 {input_report_path} 时出错:{e}")

注意:使用此方法需确保系统已安装Microsoft Word,且版本与pywin32兼容。

内容的提问来源于stack exchange,提问作者Abhi96

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 00:45:14