使用子进程从另一个python脚本捕获输出到python脚本

时间:2012-05-31 15:01:51

标签: python python-2.7 subprocess stdout

这是在带有Service Pack 2的Windows Vista Home 32b上运行的 我正在Mac和Linux上积极测试它

我有一个python脚本[A]使用子进程来运行另一个python脚本[B]

process = subprocess.Popen(action, stdin=subprocess.PIPE, stdout=subprocess.PIPE,
                           bufsize=-1)
out = process.stdout.readline()
print out

我用[A]来运行[B]

[B]来自命令行,因此可以是任何脚本

当[B]是以下python脚本

#file = 'bufftest.py"
msg = "X"
x = 1024
y = 1024
z = 1
while (z < y):
    print msg * x
    z = z + 1

从命令行运行,从[A]运行,它产生所有输出

当[B]是我没有写的程序时,我无法显示代码, 在命令行运行它产生十五行输出 但是,从[A]运行时,它只生成第一行

程序我没有像这样写

打印输出
sys.stdout.write("Line01")
# 02-14
sys.stdout.write("Line15")

它最初使用print,sys,stdout.write()打印输出 我解决了sys.stdoutput.flush()以尝试解决此问题。

谢谢。

0 个答案:

没有答案