这个问题已经在这里有了答案:




已关闭8年。






我有一个Python程序多次调用一个单独的数字运算程序(用C编写)作为子进程(使用subprocess.check_call)。它在Linux上运行良好,在Windows上也运行良好,但有一点异常(exception):每次调用子流程时,都会创建一个命令提示符窗口,然后在子流程退出时立即销毁该窗口。

这根本不影响计算,但是非常令人讨厌,因为此窗口一直在屏幕上闪烁,并且在计算机上执行其他操作非常困难,因为新的“命令提示符”窗口会占用键盘焦点。

如何简单地执行子进程(不具有GUI),并阻止创建命令提示符窗口?

最佳答案

您如何致电subprocess.check_call()?如果传递shell=True,则不应创建该窗口,因为这将导致为SW_HIDE属性设置STARTUPINFO.wShowWindow标志。

例子:

subprocess.check_call(["ping", "google.com"], shell=True)

10-06 08:51