Ответ 1
Объекты StringIO
реализуют файловый API, поэтому вы можете получить их размер точно так же, как вы можете с file
объектом: искать до конца и видеть, куда он идет.
from StringIO import StringIO
import os
s = StringIO()
s.write("abc")
pos = s.tell()
s.seek(0, os.SEEK_END)
print s.tell()
s.seek(pos)
Как упоминает Кимваис, вы также можете использовать len
, но учтите, что это специфично для объектов StringIO. В общем, основной причиной использования этих объектов в первую очередь является использование их с кодом, который ожидает файловый объект. Когда вы имеете дело с общим файловым объектом, вы, как правило, хотите сделать выше, чтобы получить его длину, так как он работает с любым файловым объектом.