Python 使用subprocess.Popen隐藏控制台

Python 使用subprocess.Popen隐藏控制台,python,windows,macos,subprocess,Python,Windows,Macos,Subprocess,我不熟悉subprocess.Popen,一直在阅读文档。我只是想让我的进程不打开控制台。我需要这些参数中的哪一个 stdout=subprocess.PIPE, shell=False, creationflags = CREATE_NO_WINDOW 这只适用于Windows吗?我需要做一些不同的事情才能在Mac上工作吗 谢谢 stdout=subprocess.PIPE对是否显示控制台没有影响。它只是确定子流程的stdout是否被捕获到可以读取的管道中 shell=False是所有子流程

我不熟悉
subprocess.Popen
,一直在阅读文档。我只是想让我的进程不打开控制台。我需要这些参数中的哪一个

stdout=subprocess.PIPE,
shell=False,
creationflags = CREATE_NO_WINDOW
这只适用于Windows吗?我需要做一些不同的事情才能在Mac上工作吗


谢谢

stdout=subprocess.PIPE
对是否显示控制台没有影响。它只是确定子流程的
stdout
是否被捕获到可以读取的管道中

shell=False
是所有
子流程
命令的默认值,因此不需要提供它。它告诉
子流程
是否使用shell来执行提供的命令。它对控制台是否出现在任何平台上没有任何影响

creationflags=CREATE\u NO\u WINDOW
确实会隐藏Windows上的控制台(在Windows 7上测试,假设
CREATE\u NO\u WINDOW==0x08000000
)。但是,在非Windows平台上使用它会导致错误。您应该参考仅在Windows上提供
creationflags
的方法,以及隐藏控制台的替代方法


请注意,控制台的出现应该只是Windows上的一个问题。在Posix平台上,控制台在运行子流程时不应该出现。

我非常确定,在Posix平台(如Mac)上,您在任何情况下都不会真正看到控制台。它的可能副本并没有提到我在这个问题上的参数,只是一些其他的
startupinfo
。如果有人能透露一些信息,我将不胜感激。我添加了一个答案,直接解决了您列出的所有论点。