在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/