Вы можете создать фиктивный файловый объект, который ничего не делал с его выводом, и установить для него stderr:
class NullWriter:
def write(self, s):
pass
sys.stderr = NullWriter()
Если вы хотите использовать stderr только в течение определенного периода времени, вы можете использовать оператор with
, например, так:
class Quieter:
def __enter__(self):
self.old_stderr = sys.stderr
sys.stderr = NullWriter()
def __exit__(self, type, value, traceback):
sys.stderr = self.old_stderr
with Quieter():
# Do stuff; stderr will be suppressed, and it will be restored
# when this block exits
Требуется Python 2.6 или выше, или вы можете использовать его в Python 2.5 с from __future__ import with_statement
.