Подтвердить что ты не робот

В Python, как я могу проверить размер объекта StringIO?

И получить байты этого объекта StringIO?

4b9b3361

Ответ 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. В общем, основной причиной использования этих объектов в первую очередь является использование их с кодом, который ожидает файловый объект. Когда вы имеете дело с общим файловым объектом, вы, как правило, хотите сделать выше, чтобы получить его длину, так как он работает с любым файловым объектом.

Ответ 2

Проверяя атрибут len и используя метод getvalue()

Type "help", "copyright", "credits" or "license" for more information.
>>> import StringIO
>>> s = StringIO.StringIO()
>>> s.write("foobar")
>>> s.len
6
>>> s.write(" and spameggs")
>>> s.len
19
>>> s.getvalue()
'foobar and spameggs'