how to parse system functions output

Peter Hansen peter at engcorp.com
Wed Apr 6 10:18:03 EDT 2005


praba kar wrote:
> eg) bytesused = os.system('du -sh /Users/enmail')
> if I print this bytesused variable the output of
> bytesused variable is the below
> 
> 14M     /Users/enmail
> 0

It's unlikely this is the contents of "bytesused",
because os.system() does not return the output
of the program that is run, it returns only the
exit value.  (See the doc.)  The "14M ..." part
is actually being printed by the "du" command
as it runs.  "bytesused" contains only the "0"
that you show above.

> Now From this Output I want only '14M" I cannot split
> this output by space.  If anyone know regarding this
> mail me ASAP

You are looking for either os.popen() or the newer,
more flexible "subprocess" module (available in
Python 2.4).  Again, check the docs for details and
examples for both of these.

Basically you would do this:

result = os.popen('du -sh /Users/enmail').read()
# now parse result...

-Peter



More information about the Python-list mailing list