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