【问题标题】:Python Popen - command line application not workingPython Popen - 命令行应用程序不起作用
【发布时间】:2015-07-11 07:07:40
【问题描述】:

我正在尝试在 python 中运行以下命令行应用程序,但现在可以到达任何地方。这可以通过 OSX 上的终端完美运行:

/JS/ChannelAssign5+1stereo.app/Contents/MacOS/ChannelAssign5+1stereo "/Volumes/GRAID/_PREVIEWS/MASTER copy.mov"

当我尝试通过subprocess.Popen 运行相同的命令时,命令行应用程序打开但不运行文件 MASTER copy.mov。

    command = ['./JS/ChannelAssign5+1stereo.app/Contents/MacOS/ChannelAssign5+1stereo', '%s' % '/Volumes/GRAID/_PREVIEWS/MASTER copy.mov']
    p1 = subprocess.Popen(command)

我做错了什么?

【问题讨论】:

    标签: python command-line subprocess popen


    【解决方案1】:

    命令行版本中的引号仅用于分隔不同的参数。有了 python 列表,就不需要它们了:

    command = ['./JS/ChannelAssign5+1stereo.app/Contents/MacOS/ChannelAssign5+1stereo',
        '/Volumes/GRAID/_PREVIEWS/MASTER copy.mov']
    p1 = subprocess.Popen(command)
    

    【讨论】:

    • 使用这个命令我得到“ raise child_exception OSError: [Errno 2] No such file or directory”
    • 文件名或路径中有空格需要加引号。
    • 您是否在正确的目录中启动了脚本?并且不需要引号,列表保留了空间。
    • 你说得对,我现在没有得到“没有这样的目录”,但它仍然没有运行,结果和原来的一样。应用程序运行,但未通过文件。
    • @speedyrazor:您应该更新您的问题或使用此新信息提出新问题。您是否尝试过使用subprocess.check_call 而不是subprocess.Popen 来等待子进程完成?
    猜你喜欢
    • 2016-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-30
    • 2018-08-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多