使用 Python 打开应用程序,当应用程序名称中有空格时不起作用

Open applications with Python, doesn't work when there are spaces in app name

我正在尝试使用 python 打开应用程序。目前,这是我得到的:

os.system("open " + "/Applications/" + app + ".app")

('app' 是一个带有 appname 的字符串,在整个脚本中变化)

现在,我的问题是,当我尝试用一​​个单词作为名称打开应用程序时,它会完美运行。像 "Blender" 或 "Brackets"。但是,如果我尝试打开 photoshop 等应用程序(在应用程序文件夹中名为 "Adobe Photoshop CS6"),则没有任何反应。我现在已经尝试了几个小时,经历了很多问题,其中很多都在谈论在字符串前添加 'r' 。我在我的字符串的每个部分之前都尝试过这个,并且还尝试将它全部封装在引号之间但没有任何帮助。

为什么这是个问题?

.app 位周围添加引号:

os.system("open " + "'/Applications/" + app + ".app'")
                     ^                             ^

所以它扩展为:

open '/Application/Hello World.app'

你可能应该使用 subprocess.call() 无论如何,它接受数组元素中的参数并且不会遇到这个问题。