【发布时间】:2019-10-18 08:06:08
【问题描述】:
我正在使用 check_output 从 python 的子进程模块调用 shell 命令。
如下图,我尝试通过将stderr重定向到stdout来得到执行错误shell命令lsl -l的错误信息。但它显然不起作用。为什么?
In [5]: subprocess.check_output("lsl -l", shell=True,stderr=subprocess.STDOUT)
---------------------------------------------------------------------------
CalledProcessError Traceback (most recent call last)
<ipython-input-5-8dd15c76eb0f> in <module>
----> 1 subprocess.check_output("lsl -l", shell=True,stderr=subprocess.STDOUT)
/usr/lib/python3.5/subprocess.py in check_output(timeout, *popenargs, **kwargs)
624
625 return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
--> 626 **kwargs).stdout
627
628
/usr/lib/python3.5/subprocess.py in run(input, timeout, check, *popenargs, **kwargs)
706 if check and retcode:
707 raise CalledProcessError(retcode, process.args,
--> 708 output=stdout, stderr=stderr)
709 return CompletedProcess(process.args, retcode, stdout, stderr)
710
CalledProcessError: Command 'lsl -l' returned non-zero exit status 127
【问题讨论】:
标签: python subprocess