【问题标题】:(Python) Launching an external application and wait for the end of it(Python) 启动一个外部应用程序并等待它结束
【发布时间】:2014-08-02 15:43:59
【问题描述】:

我需要用 Python(在 linux 中)编写一个启动外部 exe 并等待其运行结束的应用程序。

这是我的参数:

Path: /home/user/docs/myapp.mat
Application: Matlab:exe

我需要将 myapp.mat 文件发送到 matlab.exe,并等待程序完成。我还需要打印应用程序的退出代码,以检查 exe 是否正常结束。

任何建议如何做到这一点?我找到了一些从 Python 运行 exe 的示例,但到目前为止我还没有找到适合我的情况的最佳解决方案。

【问题讨论】:

    标签: python exe exit-code


    【解决方案1】:

    你可以使用 subprocess 模块,例如这样:

    如果您需要程序的输出,可以使用:

    import subprocess
    
    output = subprocess.check_output(["Matlab.exe", "/home/user/docs/myapp.mat"])
    print output
    

    如果只需要退出代码,可以使用调用函数:

    import subprocess
    
    exitcode = subprocess.call(["Matlab.exe", "/home/user/docs/myapp.mat"])
    print exitcode
    

    如果你需要退出代码和输出,你可以这样做:

    import subprocess
    
    try:
        output = subprocess.check_output(["Matlab.exe", "/home/user/docs/myapp.mat"])
        # If it doesn't fail, the exitcode equals to 0.
        print output # Prints the output.
    except subprocess.CalledProcessError as e:
        print e.returncode # Prints the exitcode.
    

    【讨论】:

    • 我应该在哪里找到退出代码?在“输出”变量中?
    • 那一刻,我需要他们两个?有可能吗?
    • 非常感谢!现在我要把这段代码插入一个循环中,并一个一个地加载文件。让我们交叉手指:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-24
    • 2020-04-08
    • 1970-01-01
    • 1970-01-01
    • 2012-02-15
    • 1970-01-01
    相关资源
    最近更新 更多