0
我想写一个启动子进程的python脚本,并写入子进程的stdin。
在这里,我可以写,并得到一个结果:子流程popen,如何获取访问权限?
def get_band():
print "band"
p = subprocess.Popen(["/path/to/program","-c","-"], stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.PIPE)
ran_stdout = p.communicate(input='show status')[0]
print(ran_stdout)
然而print语句给出:
Unable to connect at 127.0.0.1, Connection refused.
如果我这样做,显示同样的结果:
p = subprocess.Popen(["/path/to/program","-c","-"], stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.PIPE).communicate()
print p[0]
如果我从终端运行这个命令它工作正常,我可以得到结果。
给出的参数有什么问题? ["/path/to/program","-c","-"]
这不是'[“/ path/to/program”,“ - c”,“ - ”]'不是子过程吗? – danodonovan 2013-04-10 09:22:23
其实是的,我认为它会改变 – Paul 2013-04-10 09:25:28
因此,无论'path/to/program'是什么,它都会产生你提供的错误(它似乎无法连接到本地主机)。当然,你应该考虑纠正程序的“路径/程序”? – danodonovan 2013-04-10 09:36:11