0

サブプロセスを開始し、サブプロセスの stdin に書き込む python スクリプトを作成しようとしています。
ここで私は書いて結果を得ることができます:

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","-"]

4

1 に答える 1

0

これは何らかの理由で機能し、同じ行でコマンドを渡しました。

  p = subprocess.Popen(["/path/to/program", '-c', '-', cmd_here],
  stdout=subprocess.PIPE) 
  proc_stdout, proc_stderr = proc.communicate()
  proc.wait()
于 2013-04-10T10:49:31.097 に答える