Django 中使用win32com 将doc转成docx文件报错

1、word文件 由doc转成docx格式,只需要下面三行代码

from win32com import client as wc
w = wc.Dispatch('Word.Application')
doc=w.Documents.Open(path1)
doc.SaveAs(path2,16)

2、在django项目中将上传的doc格式的word文件转成docx格式时报下方错误:

pywintypes.com_error: (-2147221008, '尚未调用 CoInitialize。', None, None)

按照网上的说法多线程里面使用win32com调用com组件的时候,需要用pythoncom.CoInitialize初始化释放资源但还是不行。

3、解决办法:创建多进程将上方三行代码丢到多进程中就ok啦!

views.py 文件中代码:
MyProcess = multiprocessing.Process(target=FormatToWord, args=(name,Suffix))
MyProcess.start()  
MyProcess.join()
MyProcess.terminate() 
新文件.py
def FormatToWord(name):
          dictPath = f"{BASE_DIR}/WordFormat/Data/"
          path1 = dictPath + name + '.doc'
          path2 = dictPath + name + '.docx'
          w = wc.Dispatch('Word.Application') 
          doc = w.Documents.Open(path1)
          doc.SaveAs(path2, 16)

你可能感兴趣的:(Django 中使用win32com 将doc转成docx文件报错)