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

时间:2015-04-26 06:17:02

标签: python-2.7 terminal popen quicktime

我正在使用终端在quicktime播放器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)

我做错了什么?

1 个答案:

答案 0 :(得分:1)

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

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

然后我认为您还应该能够删除shell=True参数。此外,您可以查看subprocess.call()subprocess.check_call()(前者返回程序的返回值,后者如果返回值指示错误则引发异常):

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

注意:编码风格明智,command通常作为列表传递,如上面链接的文档中所示。

修改:在两个路径的开头添加'/'以使其正常工作。