Python as a scripting language. Alternative to bash script?

Michael Torrie torriem at gmail.com
Tue Jul 6 09:40:19 EDT 2010


On 07/06/2010 04:12 AM, sturlamolden wrote:
> On 28 Jun, 19:39, Michael Torrie <torr... at 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.



More information about the Python-list mailing list