我有一个带有GUI的程序,通过Popen调用运行外部程序:
p = subprocess.Popen("<commands>" , stdout=subprocess.PIPE , stderr=subprocess.PIPE , cwd=os.getcwd())
p.communicate()
Run Code Online (Sandbox Code Playgroud)
但是无论我做什么,都会弹出控制台(我也尝试将NUL传递给文件句柄).如果没有得到我调用的二进制文件来释放它的控制台,有没有办法做到这一点?
如果我将我的代码文件保存为.pyw,则不会出现控制台窗口 - 这就是我想要的 - 但如果代码包含调用os.system,我仍然会得到一个讨厌的控制台窗口.我认为这是由呼叫引起的os.system.有没有办法从我的.pyw脚本中执行其他文件而根本不提高控制台窗口?
可能重复:
在没有控制台的情况下使用Popen在pythonw中运行进程
如何从Python(2.7)中的衍生进程中消除Windows控制台?
我有一个Python程序,它调用一个单独的数字运算程序(用C语言编写)作为子进程多次(使用subprocess.check_call).它在Linux上运行良好,除了一件小事之外,它在Windows上运行良好:每次调用子进程时,都会创建一个命令提示符窗口,然后在子进程退出时很快就会被销毁.
这根本不会影响计算,但是它非常烦人,因为这个窗口一直在屏幕上闪烁,这使得在计算机上执行其他操作很困难,因为新的命令提示符窗口可以窃取键盘焦点.
如何简单地执行子进程(没有GUI),并阻止创建命令提示符窗口?