在没有shell窗口的情况下运行shell命令
使用subprocess.call
或subprocess.Popen
,执行shell命令会使shell窗口快速出现并消失。在没有shell窗口的情况下运行shell命令
如何在没有shell窗口的情况下运行shell命令?
我想你的观察仅限于Windows,因为我相信这是唯一一个你会得到“控制台闪存”问题的平台。如果是这样,那么docs提供以下半段有所帮助:
的STARTUPINFO和creationflags,如果给 ,将被传递给底层 CreateProcess()函数。 他们可以指定诸如 外观的主窗口和 优先级为新进程。 (视窗 只)
不幸的是Python的在线文档不再现Windows的API文档的相关部分,所以你必须在其他地方找到的,例如MSDN上开始here导致你here为creationflags
,并且具体地
CREATE_NO_WINDOW
0x08000000
过程是一个控制台应用程序 是正在运行没有一个控制台 窗口。因此,应用程序的控制台句柄 未设置。
因此,增加creationflags=0x08000000
您Popen
调用应该帮助(可惜我没有在其上尝试了这一点,所以你必须自己尝试一下Windows的跑步机)。
谢谢你快速回答! – 2010-05-29 16:28:14
在Windows机器上验证。谢谢! – 2011-10-20 06:32:44
非常好,这个作品! – ChristopheD 2011-12-06 12:37:58
什么平台? (听起来像Windows) – 2010-05-29 16:05:45
相关:[我如何隐藏控制台,当我使用os.system()或subprocess.call()?](http://stackoverflow.com/q/7006238/4279) – jfs 2014-05-22 00:34:58