python:COMERROR读取文件时

时间:2017-07-21 14:32:58

标签: python pdf powerpoint comtypes

我正在使用Windows和Jupyter来编写python代码,当我使用包comtypes.client时,它是不稳定的,有时它可以工作,有时它不会。我正在做的是尝试将pptx文件转换为pdf文件。这是我的代码:

import comtypes.client

def PPTtoPDF(inputFileName, outputFileName, formatType = 32):
    powerpoint = comtypes.client.CreateObject("Powerpoint.Application")
    powerpoint.Visible = 1

    if outputFileName[-3:] != 'pdf':
        outputFileName = outputFileName + ".pdf"
    deck = powerpoint.Presentations.Open(inputFileName)
    deck.SaveAs(outputFileName, formatType) # formatType = 32 for ppt to pdf
    deck.Close()
    powerpoint.Quit()

PPTtoPDF('07-20 contact PPT.pptx','./Reports/07-20 contact result',32)

错误是:

COMError: (-2147024894, 'The system cannot find the file specified.', (None, None, None, 0, None))

我认为此代码没有问题,因为它可以运行好几次,所以可能是因为计算机环境或其他原因。任何人都可以告诉我如何使这段代码稳定,或者在python中将PPTX转换为PDF有什么好处?

谢谢大家〜

1 个答案:

答案 0 :(得分:0)

我收到了同样的错误,我有一台64位Windows PC。我的解决方案涉及使用以下命令指定文件路径:

# Open the ppt file path. sys.argv[1] is the ppt name.
mypath = os.path.abspath(__file__)
mydir = os.path.dirname(mypath)
file_input = os.path.join(mydir, sys.argv[1])

# create the pdf output file path and call your function 
file_output = os.path.join(mydir, sys.argv[1][:-4] + "pdf")
PPTtoPDF(file_input, file_output)