Search code examples
pythonsubprocess

subprocess.check_output return code


I am using:

grepOut = subprocess.check_output("grep " + search + " tmp", shell=True)

To run a terminal command, I know that I can use a try/except to catch the error but how can I get the value of the error code?

I found this on the official documentation:

 exception subprocess.CalledProcessError

    Exception raised when a process run by check_call() or check_output() returns a non-zero exit status.

    returncode

        Exit status of the child process.

But there are no examples given and Google was of no help.


Solution

  • You can get the error code and results from the exception that is raised.

    This can be done through the fields returncode and output.

    For example:

    import subprocess
    
    try:
        grepOut = subprocess.check_output("grep " + "test" + " tmp", shell=True)                       
    except subprocess.CalledProcessError as grepexc:                                                                                                   
        print("error code", grepexc.returncode, grepexc.output)