Python Popen().stdout.read() hang

前端 未结 3 1323
陌清茗
陌清茗 2021-02-07 16:22

I\'m trying to get output of another script, using Python\'s subprocess.Popen like follows

process = Popen(command, stdout=PIPE, shell=True)
exitc         


        
3条回答
  •  暗喜
    暗喜 (楼主)
    2021-02-07 16:54

    read() waits for EOF before returning.

    You can:

    • wait for the subprocess to die, then read() will return.
    • use readline() if your output is broken into lines (will still hang if no output lines).
    • use os.read(F,N) which returns at most N bytes from F, but will still block if the pipe is empty (unless O_NONBLOCK is set on the fd).

提交回复
热议问题