Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 python-在应用程序中打开文件_Python 2.7_Terminal_Popen_Quicktime - Fatal编程技术网

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

Python 2.7 python-在应用程序中打开文件,python-2.7,terminal,popen,quicktime,Python 2.7,Terminal,Popen,Quicktime,我正在使用terminal成功地在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') sub

我正在使用terminal成功地在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 = ('open', '-a', 'Quicktime Player 7', '/Users/Me/Movies/test.mov')
subprocess.Popen(command, shell=True)
然后我认为您还应该能够删除
shell=True
参数。此外,您可以查看或(前者返回程序的返回值,后者在返回值指示错误时引发异常):

注意:就编码风格而言,
命令通常作为列表传递,如我上面链接的文档所示


编辑:在两个路径的开头添加
“/”
,使其工作。

第一个建议没有任何作用,只是运行,什么也没有发生,subprocess.check_调用返回非零退出状态1。您正在运行哪个操作系统?subprocess.check_调用现在工作,我必须在文件路径的开头添加一个/。
subprocess.check_call(['open', '-a', 'Quicktime Player 7', '/Users/Me/Movies/test.mov'])