最近项目中需要做批量上传日报的功能,照片只拍一张,所有的日报共用,要保存多份,所以在迭代的时候就直接使用
file.save(filename)
进行保存了
结果发现,从第二次开始保存的文件都是错误的,打不开。排查发现文件都是空的
后来想通了,这是因为文件在写入的过程中,指针也会随着向后指。所有等文件写入到磁盘,指针也指到了最后
所以就需要文件的指针指向初始状态即可
file.save(filename)
file.seek(0)
当然,在指针恢复在其他场景也会遇到的比如
file.read()
file.save()
诸如此类,但凡有文件或者数据流等等需要用到指针的地方,存储多次都需要将指针指向初始状态