我是Python的新手,现在我要改变一个脚本,以便调用另一个程序并获得它的输出。我研究过,所有解决方案都指向
p = sub.Popen('echo '+s+' | ${morphg_res:-./morphg.ix86_linux -t}', shell=True,stdout=sub.PIPE,stderr=sub.PIPE )
out,err=p.communicate()
print out
但我无法让它发挥作用。 “打印出来”没有打印任何内容。
我使用
os.system('echo '+s+' | ${morphg_res:-./morphg.ix86_linux -t}')
但这样我无法获得变形的输出。
另外,我并不完全理解第二部分的含义,但我知道它正确地调用了程序。只是输出是stdin,我需要它在变量中。
任何帮助?
P.S。:subprocess.check_output不是一个选项,因为我有Python 2.6。
答案 0 :(得分:0)
试试这个:
import os
p = os.popen('echo '+s+' | ${morphg_res:-./morphg.ix86_linux -t}')
out = p.read()
print out