“AttributeError:<unknown>.Open”
“AttributeError:<unknown>.Text”
这两个问题都可以使用以下方法:
from win32com.client import Dispatch
import time
def read_doc_win(path):
content = []
word = Dispatch('Word.Application') # 打开word应用程序
word.Visible = 0 # 后台运行,不显示
word.DisplayAlerts = 0 # 不警告
doc = word.Documents.Open(FileName=path, Encoding='utf-8')
for para in doc.paragraphs:
s = para.Range.Text.strip() + "\n"
content.append(s)
doc.Close()
word.Quit
time.sleep(1)
return content
关键部分就是加入了:
time.sleep(1)
原因是work处理还没结束,下一个操作就又开始了
解决方案两个:
(1)购买性能更好的CPU;
(2)在代码中加入time.sleep(1),休息1秒,就OK了。
(-2147221008, ‘尚未调用 CoInitialize。’, None, None)
先import pythoncom
,这个是win32com里自带的
在初始化的地即方在word = Dispatch("Word.Application")
前后前后加上 pythoncom.CoInitialize()
即可解决该报错
pythoncom.CoInitialize()#加上的
word = Dispatch("Word.Application")
pythoncom.CoInitialize()#加上的
(-2147352567, ‘发生意外。’, (0, ‘Kingsoft WPS’, ‘文档打开失败。’, ‘’’, 3010, -786427), None)
原因不在于程序尚未退出,而在于使用的文件路径方式不对:使用相对路径报错,更换为绝对路径就ok了
ImportError: DLL load failed while importing win32api: 找不到指定的模块。
先卸载pywin32、pypiwin32
安装pywin32==225:pip install pywin32==225