subprocess.check_output(args, *, stdin=None, stderr=None, shell=False, universal_newlines=False, timeout=None)
Run command with arguments and return its output.
If the return code was non-zero it raises a CalledProcessError
. The CalledProcessError
object will have the return code in the returncode
attribute and any output in the output
attribute.
This is equivalent to:
run(..., check=True, stdout=PIPE).stdout
The arguments shown above are merely the most common ones. The full function signature is largely the same as that of run()
- most arguments are passed directly through to that interface. However, explicitly passing input=None
to inherit the parent’s standard input file handle is not supported.
By default, this function will return the data as encoded bytes. The actual encoding of the output data may depend on the command being invoked, so the decoding to text will often need to be handled at the application level.
This behaviour may be overridden by setting universal_newlines to True
as described above in Frequently Used Arguments.
To also capture standard error in the result, use stderr=subprocess.STDOUT
:
>>> subprocess.check_output( ... "ls non_existent_file; exit 0", ... stderr=subprocess.STDOUT, ... shell=True) 'ls: non_existent_file: No such file or directory\n'
New in version 3.1.
Changed in version 3.3: timeout was added.
Changed in version 3.4: Support for the input keyword argument was added.
Please login to continue.