【发布时间】:2020-03-27 20:53:53
【问题描述】:
我知道关于这个主题有很多问题,但似乎没有一个可以提供能解决我所有要求的答案。
我的要求:
- 启动另一个应用程序(应该支持所有类型的应用程序:需要用户输入的长时间运行的进程、快速结束的简单应用程序或需要很长时间的应用程序)
- 还应该能够启动立即结束的应用程序(例如:'git status')
- 需要在新的控制台窗口中启动
- 即使在命令完成后控制台窗口仍应保持活动状态以查看应用程序输出。
- 需要跨平台(Windows 和 Linux)
我想使用子进程模块。我已经尝试使用选项 CREATE_NEW_CONSOLE
subprocess.Popen(("git", "status"), close_fds=True, creationflags=subprocess.CREATE_NEW_CONSOLE | subprocess.STARTF_USESHOWWINDOW, shell=True)
但是:
- 它实际上不起作用。我看不到窗口正在启动,或者它可能正在启动但在命令执行后退出太快。
- 这仅适用于 Windows。想知道是否有办法在所有平台上始终如一地做到这一点?
【问题讨论】:
-
一些程序运行系统脚本(bash/bat),该脚本运行预期的程序和
pause程序,所以窗口等待结果直到你按下某个键。
标签: python subprocess popen