我正在使用终端在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)
我做错了什么?
答案 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
通常作为列表传递,如上面链接的文档中所示。
修改:在两个路径的开头添加'/'
以使其正常工作。