在Python中,如何检查StringIO对象的大小?

57 投票
3 回答
38586 浏览
提问于 2025-04-16 09:53

那么如何获取那个StringIO对象的字节呢?

3 个回答

0

我使用了'getvalue'这个方法,并检查了返回值的长度。

len(s.getvalue())
21

通过检查 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'
82

StringIO 对象实现了文件的功能,所以你可以用和普通文件一样的方法来获取它的大小:就是把指针移动到最后,然后看看指针的位置。

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)

正如 Kimvais 提到的,你也可以使用 len 来获取大小,但要注意这只适用于 StringIO 对象。一般来说,使用这些对象的一个主要原因是为了和那些需要文件样式对象的代码一起使用。当你处理一个通用的文件样式对象时,通常想要用上面的方法来获取它的长度,因为这种方法适用于 任何 文件样式对象。

撰写回答