title: Capturing stdout within the same process in Python
body: <p>I've got a python script that calls a bunch of functions, each of which writes output to stdout.  Sometimes when I run it, I'd like to send the output in an e-mail (along with a generated file).  I'd like to know how I can capture the output in memory so I can use the <code>email</code> module to build the e-mail.</p>
  
  <p>My ideas so far were:</p>
  
  <ul>
  <li>use a memory-mapped file (but it seems like I have to reserve space on disk for this, and I don't know how long the output will be)</li>
  <li>bypass all this and pipe the output to sendmail (but this may be difficult if I also want to attach the file)</li>
  </ul>