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
通常作为列表传递,如我在上面链接的文档中所见。
编辑: 在两个路径的开头添加 '/'
以使其生效。
我正在使用终端在 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
通常作为列表传递,如我在上面链接的文档中所见。
编辑: 在两个路径的开头添加 '/'
以使其生效。