Python 2.7.10 Windows 7和subprocess.CREATE_NEW_控制台标志,带有Popen stdin.write();不起作用

Python 2.7.10 Windows 7和subprocess.CREATE_NEW_控制台标志,带有Popen stdin.write();不起作用,python,subprocess,stdout,stdin,popen,Python,Subprocess,Stdout,Stdin,Popen,我的目标是: 使用带有Create\u new\u console标志的subprocess.Popen()创建一个新的python控制台 写入其stdin并将其打印到新控制台 在我的windows 10笔记本电脑上,我可以让它工作,但是在我的windows 7桌面上,由于creationflags=CREATE\u NEW\u控制台 我还尝试删除creationflags=CREATE\u NEW\u CONSOLE,并将shell=True添加到参数中。这没有任何作用 Script.py

我的目标是:

  • 使用带有
    Create\u new\u console
    标志的
    subprocess.Popen()
    创建一个新的python控制台
  • 写入其stdin并将其打印到新控制台
在我的windows 10笔记本电脑上,我可以让它工作,但是在我的windows 7桌面上,由于
creationflags=CREATE\u NEW\u控制台
我还尝试删除
creationflags=CREATE\u NEW\u CONSOLE
,并将
shell=True
添加到参数中。这没有任何作用

Script.py:

CODE="""
import sys;
while 1:
    sys.stdout.write(sys.stdin.readline());
    sys.stdout.flush();
""";
def Process():
    return Popen([sys.executable,'-c',CODE],stdin=PIPE,bufsize=1,universal_newlines=True,creationflags=CREATE_NEW_CONSOLE);
p=Process();
p.stdin.write('Hello World\n');
p.stdin.flush();
raw_input('');
当我运行这个“script.py”时,会快速打开和关闭一个新控制台。程序在某个时候崩溃了。原始控制台保持打开状态:
原始输入(“”)阻止它关闭

我还尝试了
try:
except:
来防止新进程崩溃,但只是创建了一个空控制台,它什么都不做。 我做了很多研究,但没有发现任何可以解决这个问题的方法

更新***我更新到Python 2.7.15,然后继续确定问题。 我发现,
sys.stdout.flush()正在抛出[Errno 9]错误的文件描述符错误,因为sys.stdout不知何故已损坏。
我的主要问题是“如何在
subprocess.Popen()
中保留stdout,以便新的控制台窗口可以打印到自身而不重定向stdout?”


任何帮助都将不胜感激

捕获错误消息,例如,删除
creationflags=CREATE\u NEW\u CONSOLE
,以便脚本在同一控制台中运行。我刚刚删除了
creationflags=CREATE\u NEW\u CONSOLE
,它确实将Hello World打印到了我的控制台。由于
while 1
循环,我不得不退出。这意味着它与新控制台有关。到目前为止,我得出结论,stdout无效,在调用
sys.stdout.flush()时抛出[Errno 9]错误的文件描述符错误。那么如何保存标准输出以便打印到新控制台?捕获错误消息,例如,删除
creationflags=CREATE\u new\u console
,以便脚本在同一控制台中运行。我刚刚删除了
creationflags=CREATE\u new\u console
,它确实将Hello World打印到了我的控制台。由于
while 1
循环,我不得不退出。这意味着它与新控制台有关。到目前为止,我得出结论,stdout无效,在调用
sys.stdout.flush()时抛出[Errno 9]错误的文件描述符错误。那么,如何保存标准输出以便打印到新控制台?