请大家看这个
Topic source额,在上一个里的回复里想错了-。-!
f.write()是完全按照stream position来写的,这里因为有了
print(f.read())操作,所以这个操作结束时stream postion是指向f流原来文件的末尾的,所以f.write()不会覆盖f原有文件。
如果没有print(f.read())操作,那么stream position就是指向f原有文件开头,那么f.write()就会把f原有文件覆盖。
所以感觉其实StringIo可以同时读写,比如:
from io import StringIO
f=StringIO('12345')
f.seek(5)
f.write('abcdef')
f.seek(0)# or print(f.getvalue())
print(f.read())
- 1
渡俊
from io import StringIO f = StringIO("1\n2\n3") print(f.read()) f.write("\n4\n5\n6")
print(f.getvalue()) f.seek(0) print(f.readline()) while True: s = f.readline() if s == "": break print(s.strip()) 结果是大家能理解的?