Вы не пытались вернуться к началу.Для чтения и записи в файлах используется указатель позиции файла , который перемещается каждый раз, когда вы записываете в файл или читаете из него.Прямо сейчас указатель находится в конце файлового объекта, поэтому чтение ничего не вернет:
>>> import io
>>> data_io = io.StringIO()
>>> data_io.write("""%s\t%s\n""" % (115, 500))
8
>>> data_io.read()
''
Используйте data_io.seek(0)
, чтобы вернуть позицию файла в начало, прежде чем попросить copy_from
прочитатьваши данные:
>>> data_io.seek(0)
0
>>> data_io.read()
'115\t500\n'
С другой стороны: я бы использовал модуль csv
для записи данных, разделенных табуляцией, в файл:
import csv
writer = csv.writer(data_io, delimiter='\t')
writer.writerow((115, 500))