stderr and stdout
Bernhard Herzog
herzog at online.de
Thu Jun 29 16:06:40 EDT 2000
Arinté <jamarijr at my-deja.com> writes:
> Ok, I took care of that stuff do you know of anyway to keep the stdout
> and stderr in sync.
Here's a simple python solution:
import sys, random
class Collector:
def __init__(self):
self.strings = []
def write(self, tag, str):
self.strings.append((tag, str))
def dump(self):
for item in self.strings:
sys.__stdout__.write("%s:%s" % item)
_collector = Collector()
class TaggingOStream:
def __init__(self, tag):
self.tag = tag
def write(self, str):
_collector.write(self.tag, str)
sys.stdout = TaggingOStream('stdout')
sys.stderr = TaggingOStream('stderr')
def main():
# Generate some random messages in stderr and stdout
for i in range(20):
stream = random.choice((sys.stdout, sys.stderr))
stream.write("Random message %g\n" % random.random())
main()
_collector.dump()
--
Bernhard Herzog | Sketch, a drawing program for Unix
herzog at online.de | http://sketch.sourceforge.net/
More information about the Python-list
mailing list