在没有shell窗口的情况下运行shell命令

时间:2010-05-29 16:01:08

标签: python windows shell subprocess

使用subprocess.callsubprocess.Popen,执行shell命令会使shell窗口快速显示并消失。

如何在没有shell窗口的情况下运行shell命令?

1 个答案:

答案 0 :(得分:24)

我想你的观察仅限于Windows,因为我认为,这是唯一可以获得“控制台闪存”问题的平台。如果是这样,那么docs会提供以下半帮助段落:

  

startupinfo和creationflags,如果   给定,将传递给   底层的CreateProcess()函数。   他们可以指定诸如的东西   主窗口的外观和   新流程的优先级。 (视窗   只)

不幸的是,Python在线文档不会重现Windows API文档的相关部分,因此您必须在其他位置找到它们,例如:在MSDN上发起herecreationflags引导here,特别是

CREATE_NO_WINDOW
0x08000000
  

该过程是一个控制台应用程序   在没有控制台的情况下运行   窗口。因此,控制台手柄   因为没有设置应用程序。

所以,将creationflags=0x08000000添加到Popen来电应该会有所帮助(遗憾的是我没有运行Windows的机器可以试试这个,所以你必须亲自尝试一下)。