from io import StringIO; f = StringIO(); f.write('Hello World'); s = f.readline();
print s;
上面这种方法无论如何都读不出f的内容,使用readlines和循环也不行
上面是文中介绍的先初始化一个stringIO流,然后readline读取内容,这样就可以from io import StringIO; f = StringIO('Hello World'); s = f.readline(); print s;
是因为the stream position的原因,当你用:
d = StringIO('Hello World')
其stream position为0(可以通过d.tell()获得),而后执行
d.readline()
stream position移动到11.因此在执行此方法时,返回的是空字符串。
类似的,使用
f = StringIO()
stream position也为0,而执行
f.write('Hello World')
stream position就移动到11了,因此你再执行readline时返回的依旧是空字符串,若你需要返回'Hello World'可以通过
f.seek(0)
调整stream position即可。
StringIO的读写问题
最新推荐文章于 2023-11-21 16:38:32 发布