StringIO and BytesIO
Topic sourcea = StringIO('abcdefg') a.getvalue() 'abcdefg' a.write('12') 2 a.getvalue() '12cdefg'
这里的a.write('12') 为什么不会覆盖原来的'abcdefg'???
七楼带偏了啊。。。
sio = StringIO('abc') #这里是初始化,指针指向0 sio.getvalue()'abc'
sio = StringIO('def')
这俩sio根本就不是同一个好吧,所以每次指针都执行0
感谢楼上
补充一点:指针是否移动跟初始化的时候是否传入字符串无关,
使用write方法可以移动指针,返回值即指针的步数,步数=len(字符串)
指针指向的并不是字符的右边或左边,而是指向了这个字符串,像变量名一样,指向某个对象(指针指向的是对象)
所以你用seek方法把指针移动到某一个位置时,再用write方法写入,会替换掉这个指针原来指向的对象
Dr_v3n
如果你用file-like object的方法查看的时候,你会发现数据为空
sio = StringIO() sio.write(s) for i in sio.readlines(): print(i.strip())
这里我试了试是可以打印的啊,为什么说为空呢?