【问题标题】:Python - Process call and waitPython - 处理调用并等待
【发布时间】:2016-04-08 07:30:52
【问题描述】:

我有一个关于调用进程并等到该程序关闭的问题。

它应该像这样工作:

主程序和次程序。

主程序应通过单击 QPushButton 打开辅助程序。

然后出现二级程序,可以正常使用了。

在你关闭它的那一刻,(所以进程被终止,通过退出窗口)主程序也应该被终止。

我知道有“子进程”模块,但我不明白如何使用它。文档有点奇怪。

感谢帮助:)

【问题讨论】:

  • 为什么不在打开第二个程序后立即关闭第一个程序?你真的需要在第二个程序运行时与第一个程序交互吗?如果是这样,这会使事情变得复杂,因为最简单的解决方案会在等待第二个进程完成时阻塞第一个进程。
  • @ekhumoro 这也行得通。第一个程序只是执行者。在我的第一个程序启动第二个程序后,第一个程序可以关闭。如果它打开或关闭,它不会发挥任何作用。你会怎么做?

标签: python python-3.x pyqt5


【解决方案1】:

你可以试试这个。

    import subprocess
    subprocess.call('ping 192.168.132.133')

在 Python 3.X 中,您首选使用 subprocess.run()。 如果你想要更高级的情况下 run() 不能工作,你可以直接使用 popen()。

【讨论】:

    【解决方案2】:

    如果你不需要保持第一个程序运行,你可以在打开第二个程序后立即关闭它:

        if QtCore.QProcess.startDetached('prog2', ['arg1', 'arg2']):
            QtWidgets.qApp.quit()
        else:
            print('ERROR: could not start prog2')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-16
      • 2020-09-19
      • 1970-01-01
      • 1970-01-01
      • 2018-09-10
      相关资源
      最近更新 更多