获取StringIO对象的字节?
答案 0 :(得分:59)
StringIO
个对象实现了文件API,因此您可以使用与file
对象完全相同的方式获取其大小:寻找最终并查看它的位置。
from StringIO import StringIO
import os
s = StringIO()
s.write("abc")
s.seek(0, os.SEEK_END)
print s.tell()
正如Kimvais所提到的,您也可以使用len
,但请注意,这是特定于StringIO对象的。通常,首先使用这些对象的一个主要原因是将它们与需要类文件对象的代码一起使用。当您处理类似通用文件的对象时,通常需要执行上述操作以获取其长度,因为它适用于任何类文件对象。
答案 1 :(得分:18)
检查 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'