在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
会导致它在开始时插入额外的零字节?为什么呢?
答案 0 :(得分:3)
truncate
不会移动文件指针。所以下一个字节写入下一个位置。你也要寻求开始:
b.seek(0)
b.truncate()