Python win32com Powerpoint无法处理名称中的空格
我的一个项目需要通过python以只读方式打开各种Microsoft Office文档。虽然win32com的Excel和Word功能从未遇到过包含空格的文档的问题,但win32com PowerPoint不允许这样做Python win32com Powerpoint无法处理名称中的空格,python,win32com,Python,Win32com,我的一个项目需要通过python以只读方式打开各种Microsoft Office文档。虽然win32com的Excel和Word功能从未遇到过包含空格的文档的问题,但win32com PowerPoint不允许这样做 from win32com.client import Dispatch Application = Dispatch("PowerPoint.Application") Application.Visible = True Test = Application.Presenta
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)
有更好的方法吗?使用反斜杠应该可以:
from win32com.client import Dispatch
def openfile():
Application = Dispatch("PowerPoint.Application")
Application.Visible = True
Test = Application.Presentations.Open(r"C:\transfer\hello world.pptx", ReadOnly=True)
if __name__ == "__main__":
openfile()
我猜如果字符串前面没有“r”,就会出现问题。“r”将告诉python将给定字符串视为原始字符串 如果我尝试以下方法,它对我有效:
from win32com.client import Dispatch
Application = Dispatch("PowerPoint.Application")
Application.Visible = True
Test = Application.Presentations.Open(r"C:\UsersMYUSERNAME\Desktop\The Test.pptx", ReadOnly=True)
您使用的是哪个版本的Python?正斜杠和空格在Python 2.7.12中运行良好