Here is an easy way to temporarily turn off STDOUT or STDERR in your Python program.
First you create a class to replace STDOUT. This is just minimal class with a 'write()' method.
class NullDevice(): def write(self, s): pass
Notice its 'write()' method does nothing. Therefore, when you write to the NullDevice, output goes nowhere and is dropped. All you need to do is assign sys.stdout to this class.
Here is an example of turning STDOUT off and back on:
#!/usr/bin/env python import sys class NullDevice(): def write(self, s): pass print "1 - this will print to STDOUT" original_stdout = sys.stdout # keep a reference to STDOUT sys.stdout = NullDevice() # redirect the real STDOUT print "2 - this won't print" sys.stdout = original_stdout # turn STDOUT back on print "3 - this will print to SDTDOUT"
You can also do the same thing with sys.stderr to turn off STDERR.