From Magnus Lycka answer on a mailing list:
You can skip buffering for a whole python process using "python -u" (or#!/usr/bin/env python -u etc) or by setting the environment variable PYTHONUNBUFFERED.
You could also replace sys.stdout with some other stream like wrapper which does a flush after every call.
classUnbuffered(object):def __init__(self, stream): self.stream = stream def write(self, data): self.stream.write(data) self.stream.flush()def __getattr__(self, attr):return getattr(self.stream, attr)import sys sys.stdout =Unbuffered(sys.stdout)print'Hello'