10.1.1.3 抑制输出
在不能显示或捕获输出的情况下,可以使用DEVNULL抑制输出流。下面的例子会同时抑制标准输出和错误流。
import subprocess
try:
completed =subprocess.run(
'echo to stdout:echo to stderr 1>&2;exit 1',
shell=True,
stdout=subprocess.DEVNULL,
stderr=subprocess.DEVNULL,
)
except subprocess.CallProcessError as err:
print('ERROR:',err)
else:
print('returncode:',completed.returncode)
print('stdout is {!r}'.format(completed.stdout))
print('stderr is {!r}'.format(completed.stderr))
DEVNULL的名字来自UNIX特殊设备文件/dev/null。打开文件读取时,DEVNULL对应文件末尾,写文件时会接收并忽略所有输入。
运行结果: