2011-01-13 24 views

回答

52

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的對象。一般來說,首先使用這些對象的主要原因是將它們與期望類似文件對象的代碼一起使用。當你處理一個普通的類文件對象時,你通常需要做上面的事情來獲得它的長度,因爲它可以與任何類似文件的對象一起使用。

15

通過檢查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' 
+0

我打算叫`tell()`,但你的顯然更正確。 – Omnifarious 2011-01-13 06:38:12

+1

我沒有。相反,我有這樣的:['__class__','__delattr__','__doc__','__format__','__getattribute__','__hash__','__init__','__iter__','__new__','__reduce__','__reduce_ex__' ,'__repr__','__setattr__','__sizeof__','__str__','__subclasshook__','close','closed','flush','getvalue','isatty','next','read' readline','readlines','reset','seek','tell','truncate'] – TIMEX 2011-01-13 06:45:51

相關問題