Jak zatrzymać wyjście z podprocesu.Popen od wyjścia? Drukowanie może czasami być powolne, jeśli jest ich dużo.Ukryj dane wyjściowe z podprocesu.Popen
11
A
Odpowiedz
20
Jeśli chcesz całkowicie wyrzucić:
import subprocess
import os
with open(os.devnull, 'w') as fp:
cmd = subprocess.Popen(("[command]",), stdout=fp)
Jeśli używasz Pythona 2.5, trzeba będzie from __future__ import with_statement
, lub po prostu nie używać with
.
10
W Pythonie 3.3+ można użyć subprocess.DEVNULL
, aby stłumić wyjście:
from subprocess import DEVNULL, STDOUT, check_call
check_call([cmd, arg1, arg2], stdout=DEVNULL, stderr=STDOUT)
Usuń stderr=STDOUT
jeśli nie chcesz, aby stłumić stderr
również.