Python:如何从windows下的python脚本启动一个不可见的python控制台?

时间:2016-06-13 20:18:25

标签: python windows popen

我需要从windows下的python脚本启动一个python控制台。 必须将此控制台的输出写入文本框。 我正在使用subprocess'因为python 2可以是python 2或3,取决于用户的选择,所以我不能使用code.InteractiveConsole。 现在,我用subprocess.Popen启动python,stdin = PIPE,stdout和stderr是两个文件子类,其中write方法在我的文本框上打印。

class output(file):
  def __init__(self):
    super(output,self).__init__("out","wb")
  def write(self,data):
    MyTextBox.Text = data
out=output()

一切都好。 p = Popen(“python -i”,stdin = PIPE,stdout = out,stderr = err) err是另一个类,与输出相同,但是另一个文件。 好的,p是一个子进程,但是stdout和stderr是None。 当然,我错了什么,但我不明白! 也许我必须使用4个变量? stdr和err_write的out_write和out_read,stderr的err_read? 救命啊!

1 个答案:

答案 0 :(得分:0)

要隐藏命令提示符窗口,请传递相应的标志:

si = subprocess.STARTUPINFO()
si.dwFlags |= subprocess.STARTF_USESHOWWINDOW
#si.wShowWindow = subprocess.SW_HIDE 
subprocess.call('whoami', startupinfo=si)