how to catch error with system()

Diez B. Roggisch deets.nospaaam at web.de
Mon Dec 12 16:27:46 CET 2005


eight02645999 at yahoo.com wrote:

> hi
> 
> i have a piece of python code extract that calls an external java
> program
> cmd = """java someclass someargs"""
> try:
>    ret = os.WEXITSTATUS(os.system(cmd))
> except:
>    print blah
> else:
>    dosomething(ret)
> 
> the thing is, the java class "someclass" produces it's own errors when
> something goes wrong.
> something like
> java.io.FileNotFoundException: somefile (No such file or directory)
>         at java.io.FileInputStream.open(Native Method)
>         at java.io.FileInputStream.<init>(FileInputStream.java:106)
>         at java.io.FileInputStream.<init>(FileInputStream.java:66)
>         ......
> 
> how can i supress this error from showing when i execute
> ./pythonscript.py and at the same time logging it to an errlog file??

You probably want to catche the subprocesses stdout/stderr streams. To do
so, use the subprocess module (if you are on python2.4), or the
popen2-module. See the docs for how to use them.

-- 
Regards,

Diez B. Roggisch



More information about the Python-list mailing list