PythonandEMC
PythonandEMC
采纳率0%
2021-02-24 18:52

这个引用为什么会报错?

from win32com import client as wc
from docx import Document
import docx
from docx.document import Document as _Document
from docx.oxml.text.paragraph import CT_P
from docx.oxml.table import CT_Tbl
from docx.table import _Cell, Table, _Row
from docx.text.paragraph import Paragraph
import easygui

input_doc = easygui.fileopenbox('请选择需要更新的文件')

docxfilename = ''

def doSaveAas():#将选择的doc文件另存为docx文件
    word = wc.Dispatch('Word.Application')
    doc = word.Documents.Open(input_doc)        # 目标路径下的文件
    docxfilename = input_doc + "x"
    doc.SaveAs(docxfilename, 12, False, "", True, "", False, False, False, False)  # 转化后路径下的文件  
    doc.Close()
    word.Quit()
 
doSaveAas()
print(docxfilename)#这里打印出docx的文件目录没有问题


doc = docx.Document(docxfilename)#到这里供docx库使用的时候就会报错
#后面的不写了

报错:docx.opc.exceptions.PackageNotFoundError: Package not found at ''

如果我手动提前把doc另存为docx,并把docx的文件地址写入docxfilename 然后执行调用doc = docx.Document(docxfilename)就没有问题

期待大佬的回答

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • huanhuilong 幻灰龙 2月前

    SaveAs的第二个参数是FileFormat,要保存为docx应该指定为16,word的文件格式枚举,请自行搜索,关键字:MSDN word.wdsaveformat

    点赞 评论 复制链接分享

为你推荐