代码之家  ›  专栏  ›  技术社区  ›  111111

Python子进程:在进程终止后获取所有标准输出数据

  •  0
  • 111111  · 技术社区  · 7 年前

    在伪代码中:

    • 打开子流程
    • 让程序完成

    我尝试了以下方法:

    import subprocess
    p = subprocess.Popen([cmd], 
    stdout=subprocess.PIPE,stdin=subprocess.PIPE)
    p.stdin.write(str(data))
    p.stdin.close()
    p.wait()
    result = p.communicate()[0]
    

    但是,我得到以下堆栈跟踪:

        result = p.communicate()[0]
      File "/usr/lib64/python2.7/subprocess.py", line 800, in communicate .
        return self._communicate(input)
      File "/usr/lib64/python2.7/subprocess.py", line 1396, in _communicate
        self.stdin.flush()
      ValueError: I/O operation on closed file
    

    请告知

    1 回复  |  直到 7 年前
        1
  •  1
  •   Daniel    7 年前

    communicate :

    import subprocess
    p = subprocess.Popen([cmd], stdout=subprocess.PIPE, stdin=subprocess.PIPE)
    result = p.communicate(data)[0]