为什么subprocess.Popen被绞死?

时间:2018-04-16 11:54:14

标签: python python-2.7

我有这个程序,我正在尝试启动一个单独的基于控制台的应用程序,其输出我将监视并在被询问时提供适当的输入。但它陷入了

c = proc.stdout.read(1)

直接从命令行运行时它可以正常工作

代码段:

      cmd = "/usr/bin/App.out"
      proc = Popen(cmd, shell=True, stdin=PIPE, stdout=PIPE, stderr=PIPE)
      c = proc.stdout.read(1)
      print c

我尝试了很多选项,例如:

  • 不使用带有read()
  • 的1字节缓冲区
  • 使用readline()
  • 使用TemporaryFile而不是PIPE
  • 检查了root访问权限
  • 使用communic()来检查是否有任何stderr用于'proc',但没有错误

0 个答案:

没有答案