Discuss / Python / 笔记

笔记

Topic source

松鼠Yanis

#1 Created at ... [Delete] [Delete and Lock User]
f=StringIO('abc')
f.read() #返回'abc'
f.read() #返回'' 因为使用过一次read之后指针会发生移动
f.getvalue() #返回'abc' 因为getvalue不受指针影响

f=StringIO('')
f.write('abc')
f.read() #返回'' 因为write已经使指针发生了移动
f.getvalue() #返回'abc' 因为getvalue不受指针影响
f.seek(0) #解决方法:用seek将指针归零
f.read() #返回'abc'

试了一下,确实是这样,不确定指针位置的时候可以用tell()方法来判断

f=StringIO('ABCDEFGHIJK')

print(f.write('abcdef'))   #输出 6         指针移动

print(f.read())               #输出  GHIJK    从移动后的位置开始读

print(f.getvalue())        #输出  abcdefGHIJK    保留了原来长度

牛逼牛逼,所以write会覆盖?

真棒!


  • 1

Reply