Discuss / Python / 笔记

笔记

Topic source

青铜神裔

#1 Created at ... [Delete] [Delete and Lock User]

几位楼上的内容

from io import StringIO

# 初始化,说明指针指向0
stringIO = StringIO("abc")
print(stringIO.getvalue())
print(stringIO.tell())

# 写入字符d
stringIO.write("d")
print(stringIO.getvalue())
print(stringIO.tell())

# 移动指针到末尾
stringIO.seek(0, 2)
print(stringIO.getvalue())
print(stringIO.tell())

# 写入字符e
stringIO.write("e")
print(stringIO.getvalue())
print(stringIO.tell())

结果

abc
0
dbc
1
dbc
3
dbce
4

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

扩充内容


  • 1

Reply