.doc到.docx的转换

时间:2020-10-16 05:33:54

标签: python docx doc

# 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, None, clsctx, pythoncom.IID_IDispatch)
pywintypes.com_error: (-2147221005, 'Invalid class string', None, None)

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

0 个答案:

没有答案