regarding system function

Mike Meyer mwm at mired.org
Fri Apr 22 02:53:29 EDT 2005


praba kar <prabapython at yahoo.co.in> writes:

> Dear All,
>
>      In Php If I send a command to system function
> then It will return 1 on success and 0 on failure.  So
> based upon that value I can to further work.
>
>      But In Python If I send a command to system
> function then It will return 0 only for both
> conditions(success and failure).  So What I need
> to do for this.  I want the result like php system
> function.

You don't say what platform you're on, but from your description of
the problem, it's not Unix:

py> os.system("grep foo /dev/null")
256
py> os.system("grep foo /no_such_file")
grep: /no_such_file: No such file or directory
512

os.system is a simple wrapper around the C system() function. It's
return value is the same as that function. On unix, that's the 1/0 you
want in the upper byte, and status information in the lower byte - so
you divide by 256. I have no idea what Windows does in this case.

I'd recommend using the subprocess routines instead of os.system. They
are much more powerful/flexible than os.system.

    <mike
-- 
Mike Meyer <mwm at mired.org>			http://www.mired.org/home/mwm/
Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information.



More information about the Python-list mailing list