在OSX的Python 3.5.1上运行此命令:

import io

b = io.BytesIO()

b.write(b'222')
print(b.getvalue())

b.truncate(0)
b.write(b'222')
print(b.getvalue())


产生:

b'222'
b'\x00\x00\x00222'


因此,以某种方式截断BytesIO会使其开始在开头插入额外的零字节吗?为什么?

最佳答案

truncate不会移动文件指针。因此,下一个字节将写入下一个位置。您还必须寻求开始:

b.seek(0)
b.truncate()

关于python - 为什么截断BytesIO会搞砸呢?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39109068/

10-10 07:58