StringIO的读写问题

from io import StringIO;

f = StringIO();
f.write('Hello World');
s = f.readline();

print s;

上面这种方法无论如何都读不出f的内容,使用readlines和循环也不行

from io import StringIO;

f = StringIO('Hello World');
s = f.readline();
print s;
上面是文中介绍的先初始化一个stringIO流,然后readline读取内容,这样就可以


是因为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即可。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值