微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

.doc到.docx的转换

如何解决.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 举报,一经查实,本站将立刻删除。