.doc到.docx的转换

问题描述

# import necessary packages
from win32com import client

def doc2docx(doc_name):
    word = client.dispatch("Word.application")
    doc = word.Documents.Open(doc_name)
    docx_name = doc_name.replace(".doc",".docx")
    doc.SaveAs(docx_name,16)
    doc.Close()
    word.Quit()

if __name__ == "__main__":
    doc2docx("./sample_docs/example.doc")

我尝试了上面的代码,我在行中遇到pywintypes.com_error

doc = word.Documents.Open(doc_name)

有人知道这可能是什么问题吗?我的库包中安装了pypiwin32。下面是错误消息的引用。

Traceback (most recent call last):
  File "C:\Users\bcp\anaconda3\envs\del\lib\site-packages\win32com\client\dynamic.py",line 89,in _GetGooddispatch
    Idispatch = pythoncom.connect(Idispatch)
pywintypes.com_error: (-2147221005,'Invalid class string',None,None)

During handling of the above exception,another exception occurred:

Traceback (most recent call last):
  File "redaction_doc.py",line 14,in <module>
    doc2docx("./sample_docs/example.doc")
  File "redaction_doc.py",line 6,in doc2docx
    word = client.dispatch("Word.application")
  File "C:\Users\bcp\anaconda3\envs\del\lib\site-packages\win32com\client\__init__.py",line 95,in dispatch
    dispatch,userName = dynamic._GetGooddispatchAndUserName(dispatch,userName,clsctx)
  File "C:\Users\bcp\anaconda3\envs\del\lib\site-packages\win32com\client\dynamic.py",line 114,in _GetGooddispatchAndUserName
    return (_GetGooddispatch(Idispatch,clsctx),userName)
  File "C:\Users\bcp\anaconda3\envs\del\lib\site-packages\win32com\client\dynamic.py",line 91,in _GetGooddispatch
    Idispatch = pythoncom.CoCreateInstance(Idispatch,clsctx,pythoncom.IID_Idispatch)
pywintypes.com_error: (-2147221005,None)

我尝试使用@dshefman's answer,但收到相同的错误

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)