运行以下python代码段 -
from subprocess import call
call(['zip', '-d', 'ya', 'yo'])
打印此输出 -
zip warning: ya.zip not found or empty
zip warning: name not matched: yo
zip error: Nothing to do! (ya.zip)
12
如何抑制输出或将其重定向到缓冲区?
答案 0 :(得分:2)
您可以使用the stdout
and stdin
keyword arguments到call
将流重定向到(除其他外)文件对象。所以你可以写:
import os
from subprocess import call
with open(os.devnull) as devnull:
call(['zip', '-d', 'ya', 'yo'], stdout=devnull, stderr=devnull)
在python 3.3或更高版本中,您可以直接使用subprocess.DEVNULL
执行此操作:
call(['zip', '-d', 'ya', 'yo'], stdout=subprocess.DEVNULL, stdin=subprocess.DEVNULL)
答案 1 :(得分:0)
将输出重定向到/dev/null
,e。 G。使用call
:
call('zip -d ya yo > /dev/null 2>&1', shell=True)
答案 2 :(得分:0)
使用 subprocess.check_output 函数 - 几乎相同的接口,返回命令输出