Discuss / Python / StringIO and BytesIO

StringIO and BytesIO

Topic source

大家把python3 seek这个用法完全学会就知道为什么了,https://www.runoob.com/python3/python3-file-seek.html

为什么会出现数据写入后结果却出不来?做个不太恰当的类比,好比我们 2X50 米赛跑,摄像头(seek)的位置不是放置在起点开始记录而是放置在在50米处,这也就意味着当交接棒时第一棒运动员跑得过程是没被记录的,好巧不巧摄像头兼职教练员,这时他会以为“你前面50米没跑所以不算数,0分”,实际上是摄像头(seek)自己所处位置的原因,只有把摄像头放回起点位置开始记录(记录过程就是 for...in...),才能取到一个正确的成绩

mark

本地的Yoyo

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

讲得很清楚,例子很棒,只是我完整执行代码的时候报错如下:
    sio.write(s)

TypeError: string argument expected, got 'list'

我用以下代码将list合并后,执行通过:

sio.write(reduce(lambda x,y: x+y,s))

为什么liaoxuefeng.com没有点赞功能啊

俗世人i

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

write是‘追加’+‘覆盖'吧?

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

我试着总结一下吧,也不知道对不对,希望大家各抒己见

from io import StringIO

# 初始化一个StringIO对象
s_write = StringIO()
s_init = StringIO("初始化代码")

# 查看初始指针位置
print("s_write初始指针位置:", s_write.tell())
print("s_init初始指针位置:", s_init.tell())
print()

# 写入一些内容到s_write中
s_write.write("Hello,World!")
print("s_write当前指针位置:", s_write.tell())
print("s_init当前指针位置:", s_init.tell())
print()

# 查看获取值之后的指针位置
s_write.getvalue()
s_init.getvalue()
print("s_write当前指针位置:", s_write.tell())
print("s_init当前指针位置:", s_init.tell())
print()

# 读取内容
content = s_write.read()
content1 = s_init.read()

# 查看读取的内容和指针位置
print("sio读取后的指针位置:", s_write.tell())
print("s_init读取后的指针位置:", s_init.tell())

Reply