1

是否可以获取StringIO对象的大小(以字节为单位)?还是每次我想获得它的大小时都应该把它写到磁盘上?
我搜索了很多但没有成功。那里sizeof ()但我认为这不是我想要的。

我正在遍历文件名列表

temp=StringIO()
for idx,filename in enumerate(filenames):
    temp.write('something')
    if ((temp.__sizeof__()+os.path.getsize(os.path.join(inputf,filenames[idx])))/1048576.0 >= 128.0):
        (do something)
4

1 回答 1

2

你应该寻求到最后并使用tell()

temp.write('something')
temp.seek(0, os.SEEK_END)
if ((temp.tell()+...

例子:

from StringIO import StringIO
import os
temp = StringIO()
temp.write("abc€")
temp.seek(0, os.SEEK_END)
print temp.tell() #6
于 2017-04-21T09:22:53.197 回答