0

我正在尝试编写一个启动子进程并写入子进程的标准输入的 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)

但是打印语句给出:

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 回答