On 07/06/2010 04:12 AM, sturlamolden wrote: > On 28 Jun, 19:39, Michael Torrie <torr...@gmail.com> wrote: > >> In python I could simply take the output of "ps ax" and use python's >> own, superior, cutting routines (using my module): >> >> (err, stdout, stderr) = runcmd.run( [ 'ps', 'ax' ] ) >> for x in stdout.split('\n'): >> print x.strip().split()[0] > > Or you just pass the stdout of one command as stdin to another. That > is equivalent of piping with bash.
Consider this contrived example: tail -f /var/log/messages | grep openvpn While it's possible to set up pipes and spawn programs in parallel to operate on the pipes, in practice it's simpler to tell subprocess.Popen to use a shell and then just rely on Bash's very nice syntax for setting up the pipeline. Then just read the final output in python. If you set the stdout descriptor to non-blocking, you could read output as it came. -- http://mail.python.org/mailman/listinfo/python-list