【发布时间】:2018-03-09 11:36:41
【问题描述】:
我的一个项目需要通过 python 以只读方式打开各种 Microsoft Office 文档。虽然 win32com 的 Excel 和 Word 功能在处理包含空格的文档时从未遇到过问题,但 win32com PowerPoint 不允许这样做。
from win32com.client import Dispatch
Application = Dispatch("PowerPoint.Application")
Application.Visible = True
Test = Application.Presentations.Open("C:/Users/MYUSERNAME/Desktop/The Test.pptx", ReadOnly=True)
产生错误:
com_error: (-2147352567, 'Exception occurred.', (0, None, None, None, 0, -2147024894), None)
我目前的解决方案是重命名文件,用下划线替换空格,然后在打开文件后重命名。但是,这需要打开无标题的文档。
from win32com.client import Dispatch
import os
Application = Dispatch("PowerPoint.Application")
Application.Visible = True
Filename = 'The Test.pptx'
os.rename("C:/Users/MYUSERNAME/Desktop/" + Filename, "C:/Users/MYUSERNAME/Desktop/" + Filename.replace(" ","_"))
Test = Application.Presentations.Open("C:/Users/MYUSERNAME/Desktop/" + Filename.replace(" ","_"), ReadOnly=True, Untitled=True)
os.rename("C:/Users/MYUSERNAME/Desktop/" + Filename.replace(" ","_"), "C:/Users/MYUSERNAME/Desktop/" + Filename)
有没有更好的方法来做到这一点?
【问题讨论】:
-
您使用的是哪个版本的 Python?正斜杠和空格在 Python 2.7.12 中运行良好