使用subprocess.call
或subprocess.Popen
,执行shell命令会使shell窗口快速显示并消失。
如何在没有shell窗口的情况下运行shell命令?
答案 0 :(得分:24)
我想你的观察仅限于Windows,因为我认为,这是唯一可以获得“控制台闪存”问题的平台。如果是这样,那么docs会提供以下半帮助段落:
startupinfo和creationflags,如果 给定,将传递给 底层的CreateProcess()函数。 他们可以指定诸如的东西 主窗口的外观和 新流程的优先级。 (视窗 只)
不幸的是,Python在线文档不会重现Windows API文档的相关部分,因此您必须在其他位置找到它们,例如:在MSDN上发起here,creationflags
引导here,特别是
CREATE_NO_WINDOW
0x08000000
该过程是一个控制台应用程序 在没有控制台的情况下运行 窗口。因此,控制台手柄 因为没有设置应用程序。
所以,将creationflags=0x08000000
添加到Popen
来电应该会有所帮助(遗憾的是我没有运行Windows的机器可以试试这个,所以你必须亲自尝试一下)。