python - 在应用程序中打开文件

python - open file in application

我正在使用终端在 quicktime player 7 中成功打开一个文件,但似乎无法使用 python 来做同样的事情。 所以这是从终端工作的:

open -a "Quicktime Player 7" /Users/Me/Movies/test.mov

但这在 python 2.7 中不起作用,它打开 quicktime,但不是文件:

command = ('open -a "Quicktime Player 7"', 'Users/Me/Movies/test.mov')
subprocess.Popen(command, shell=True)

我做错了什么?

如果将 command 作为 list/tuple 传递,则必须正确拆分参数:

command = ('open', '-a', 'Quicktime Player 7', '/Users/Me/Movies/test.mov')
subprocess.Popen(command, shell=True)

那么我想你应该也可以去掉 shell=True 参数。此外,您可以查看 subprocess.call() or subprocess.check_call()(前者 return 是程序的 return 值,后者在 return 值指示错误时引发异常):

subprocess.check_call(['open', '-a', 'Quicktime Player 7', '/Users/Me/Movies/test.mov'])

注意:就编码风格而言,command 通常作为列表传递,如我在上面链接的文档中所见。

编辑: 在两个路径的开头添加 '/' 以使其生效。