将doc转为docx

转换原因

想使用python的docx模块读取文档中内容进行处理
但当前文档为doc,且docx模块无法打开doc,故需要先将doc转为docx

使用python的win32com模块将doc转为docx

导入模块

from win32com.client import Dispatch

打开 doc

用Dispatch()的方式启动MS Word或与当前已执行的MS Word建立连结

word = Dispatch('Word.Application')

因当前传入的为文档名称(默认其与当前python模块在同目录下)
因传入Open的需是绝对路径
故使用 sys.path[0] 获取当前模块所在的目录

doc = word.documents.Open(目标doc文档的绝对路径)

另存为 docx

保存格式(FileFormat )为12表示保存为docx
但目前未在网络上搜索到明确的有关FileFormat的信息

doc.SaveAs(要创建的docx文档的绝对路径, FileFormat = 12)

善后

doc.Close()
word.Quit()

完整代码

from win32com.client import Dispatch
import sys

def docToDocx(docPath, docxPath):
    '''将doc转存为docx'''
    word = Dispatch('Word.Application')
    pathPrefix = sys.path[0]+'\\'
    doc = word.Documents.Open(pathPrefix+docPath)
    doc.SaveAs(pathPrefix+docxPath, FileFormat=12)
    doc.Close()
    word.Quit()

你可能感兴趣的:(将doc转为docx)