读取正在写入的gzip文件
我的程序需要处理很多文件,由于文件很大,我更喜欢把它们写成GZIP格式。不过有个问题,我经常需要在文件写入的同时读取它们。没有使用GZIP压缩的时候,这个问题不大,但一旦开启压缩,读取的时候就会出现CRC失败的错误。我猜这可能和写入时压缩信息没有正确刷新有关。请问有没有办法在Python中使用GZIP,这样我在写入并刷新文件(但不一定要关闭文件)时,也能同时读取它呢?
1 个回答
1
我觉得把数据写入文件(压缩格式)其实就是把数据放进文件里,但文件的头部信息只有在你调用close()
的时候才会写入。所以你得先关闭文件,然后才能打开它,读取你需要的所有数据。如果你需要写入大量数据,可以考虑使用数据库,比如PostgreSQL或MySQL。在这些数据库里,你可以指定一个带压缩功能的表(比如归档或压缩),这样你就可以把数据插入到这个表里,并且读取它,数据库软件会帮你处理剩下的事情(比如插入时的压缩和读取时的解压)。