title: Python - generate csv file in memory and then encode its data into base64?
body: <p>I need to generate csv file like data in memory and then encode it to base64, so I could save it. So basically I don't want to create file in hard disk for that. Now I solve this by creating csv file then encoding its data, saving it and then just simply removing csv file (because it is no longer needed). But is there a way to skip file creation, but save data the same way? I mean that data would be used to open csv file again using base64.</p>
  
  <pre><code>import base64
  import csv
  from StringIO import StringIO
  import os
  
  def test_binary(self):
      mylist = [['a', 'b'], ['c', 'd']]
      with open("test.csv", "wb") as f:
          writer = csv.writer(f)
          writer.writerows(mylist)   
  
      myfile = open('test.csv', 'r')
      stream = StringIO(myfile.read())
  
      encoded = base64.b64encode(stream.getvalue())
  
      self.test = encoded
      myfile.close()
      os.remove('test.csv')        
  </code></pre>