Return value from os.system() call

Calder Coalson ccoal.mail at gmail.com
Sun Oct 28 15:27:14 CET 2007


I was searching for ways to get the return value from os.system()  
calls, when I came across this from 6 years ago.  I tried what was  
suggested in this thread, but
output = os.popen("/tmp/other").read()
returns
sh: line 1: /tmp/other: Permission denied

I'm relatively new to Python, hardly ever use the shell and am  
currently running Python 2.5.5 on Mac OS 10.4.10

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



More information about the Python-list mailing list