使用 subprocess.call
或 subprocess.Popen
执行 shell 命令会使一个 shell 窗口快速出现并消失。
如何在没有 shell 窗口的情况下运行 shell 命令?
使用 subprocess.call
或 subprocess.Popen
执行 shell 命令会使一个 shell 窗口快速出现并消失。
如何在没有 shell 窗口的情况下运行 shell 命令?
我想你的观察仅限于Windows,因为我相信这是唯一一个会出现“控制台闪烁”问题的平台。如果是这样的话,那么文档提供了以下半有用的段落:
startupinfo和creationflags(如果已提供)将被传递给底层的CreateProcess()函数。它们可以指定诸如主窗口的外观和新进程的优先级等内容。(仅适用于Windows)
不幸的是,Python在线文档没有复制Windows API文档的相关部分,因此您必须在其他位置找到它们,例如在MSDN上从这里开始,然后导航至这里获取creationflags
,并具体参考:
CREATE_NO_WINDOW
0x08000000
该进程是一个控制台应用程序, 在没有控制台窗口的情况下运行。 因此,该应用程序的控制台句柄未设置。
因此,在您的Popen
调用中添加creationflags=0x08000000
应该有所帮助(不幸的是,我没有Windows运行的机器来尝试这个方法,所以您需要自己尝试)。