【问题标题】:python - open file in applicationpython - 在应用程序中打开文件
【发布时间】:2015-07-04 15:33:31
【问题描述】:

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

我做错了什么?

【问题讨论】:

    标签: python-2.7 terminal popen quicktime


    【解决方案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 通常作为列表传递,如我在上面链接的文档中所示。

    编辑:在两条路径的开头添加'/' 以使其工作。

    【讨论】:

    • 第一个建议什么都不做,只是运行 wand 什么都没有发生,subprocess.check_call 给出返回的非零退出状态 1。
    • 你运行的是哪个操作系统?
    • subprocess.check_call 现在可以工作了,我必须在文件路径的开头添加 /。
    猜你喜欢
    • 2012-03-31
    • 1970-01-01
    • 2020-10-31
    • 2018-11-19
    • 2013-05-18
    • 1970-01-01
    • 2019-01-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多