我尝试在 Python IDLE 中使用 subprocess .Popen,在 2.7 和 3.2 版本中,代码都不起作用!!!
谢谢你。
我尝试在 Python IDLE 中使用 subprocess .Popen,在 2.7 和 3.2 版本中,代码都不起作用!!!
谢谢你。
我怀疑 IDLE 会重定向 Python stdout
,以便print
ing 发生在窗口中,但它不会重定向文件描述符 1,因此任何子进程都会愉快地打印到该文件描述符。
尝试从命令行启动 IDLE,运行这些行并查看它们的输出是否打印到调用 IDLE 的终端。
解决方案:
python
从命令行调用的解释器调用你的东西。将进程的输出重定向到管道,读取此管道并将其输出。如:
sp = subprocess.Popen(['ls'], stdout=subprocess.PIPE)
for i in sp.stdout: print i
sp.wait()