И получить байты этого объекта StringIO?
В Python, как я могу проверить размер объекта StringIO?
Ответ 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'