“AttributeError:<unknown>.Open”
“AttributeError:<unknown>.Text”
这两个问题都可以使用以下方法:
from win32com.client import Dispatch
import time
def read_doc_win(path):
content = []
word = Dispatch('Word.Application')
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
|