Мне нужно сгенерировать CSV-файл, например данные в памяти, а затем закодировать его в base64, чтобы я мог его сохранить. Поэтому в основном я не хочу создавать для этого файл на жестком диске. Теперь я решаю эту проблему, создавая файл csv, затем кодируя его данные, сохраняя его, а затем просто удаляя файл csv (потому что он больше не нужен). Но есть ли способ пропустить создание файла, но сохранить данные таким же образом? Я имею в виду, что данные будут использоваться для повторного открытия файла csv с использованием base64.
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')
'test.csv'
и используйтеStringIO
- person jfs   schedule 16.10.2015