Issue 13578: Add subprocess.iter_output() convenience function (original) (raw)
subprocess.check_output() is nice, but doesn't help if you want to process the piped data line-by-line.
Currently, that means you have to do the full Popen dance if you want access to each line of output as it becomes available.
This RFE is for a subprocess.iter_output() module level helper that:
- Starts the subprocess
- Yield the individual lines of output as they are produced by the subprocess
- Cleans up (including checking for errors) at the end
This biggest challenge I have noticed so far in exploring this is how to handle timeouts on Windows - on Unix, select.select() can do the job, but that won't handle pipes in the Windows case.