通过子进程捕获输出,但不使用COMPLICATE

原学程将引见经由过程子过程捕捉输入,但是没有应用COMPLICATE的处置办法,这篇学程是从其余处所瞅到的,而后减了1些海外法式员的疑问与解问,愿望能对于您有所赞助,佳了,上面开端进修吧。

成绩描写

我应用子过程在Python剧本中挪用内部法式。内部法式发生了年夜质的输入。我须要捕捉该法式的输入。以后代码以下所示:

process = subprocess.Popen('cmd.exe', shell=False, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=None)
process.stdin.write('gams "indus8九.gms"
')
while process.poll() != None:
 line = process.stdout.readline()
 print line

我在此代码中支到的毛病是

过程试图写进没有存留的管讲。

假如我应用以下代码:

process = subprocess.Popen('cmd.exe', shell=False, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=None)
process.stdin.write('gams "indus8九.gms"
')
o, e = process.co妹妹unicate()
print o 

则没有捕捉法式的输入。

我应当怎样变动代码,以就不妨在第3圆法式运转时捕捉其输入?

推举谜底

翻开有面过犹不及。

测验考试:

output = subprocess.check_output('gams "indus8九.gms"
', shell=True)

愿望这能在您的情况中施展感化。

佳了闭于经由过程子过程捕捉输入,但是没有应用COMPLICATE的学程便到这里便停止了,愿望趣模板源码网找到的这篇技巧文章能赞助到年夜野,更多技巧学程不妨在站内搜刮。

0
没有账号?注册  忘记密码?