grabbing return codes from os.system() call

Damian Menscher menscher+python at uiuc.edu
Thu Mar 8 01:20:43 EST 2001


I'm new to Python (as in, my experience is essentially the tutorial),
but I've already come up with an interesting question:

How do I get the return code from an os.system call?  I would have
expected I could do something like

---returncode---
#/bin/csh
echo do stuff
exit 3

and then in my python program I could do

print os.system('./returncode')

But it prints out 768.  Not particularly useful, even after I recognize
the trick of dividing by 256 (byte-swapping going on?  No, because a
return code of 768 reports as 0).  Given that my real return codes
will be (possibly large) integers, this limitation will likely cause
some serious problems down the line.

Even better would be a way of returning a string (the script I run
can be something other than csh, but it has to be a separate script).

Ideas?  I'm trying to avoid writing the string out to a file and then
read the file back in to the python program....

Damian Menscher
-- 
--==## Grad. student & Sys. Admin. @ U. Illinois at Urbana-Champaign ##==--
--==## <menscher at uiuc.edu> www.uiuc.edu/~menscher/ Ofc:(217)333-0038 ##==--
--==## Physics Dept, 1110 W Green, Urbana IL 61801 Fax:(217)333-9819 ##==--



More information about the Python-list mailing list