grabbing return codes from os.system() call
Damian Menscher
menscher+python at uiuc.edu
Thu Mar 8 18:07:57 EST 2001
Cameron Laird <claird at starbase.neosoft.com> wrote:
> In article <98795o$kq8$0 at 216.39.151.169>, Donn Cave <donn at oz.net> wrote:
>>Quoth Damian Menscher <menscher+python at uiuc.edu>:
>>| 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....
> Guys, guys; you are making it too hard on Mr. Menscher. My guess
> is that he'd appreciate being told that, if he creates /tmp/other
> with contents
> #!/bin/sh
> echo "This is a string from an external process."
> he can then have fun with
> import os
> print os.popen("/tmp/other").read()
Thank you much -- this solves my problem. I'm sure I'll have more
questions in the near future, though....
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