这个问题已经在这里有了答案:
已关闭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)