gen*_*ion 16 python gzip raspberry-pi raspbian
是否可以使用Python动态附加到gzip压缩文本文件?
基本上我这样做: -
import gzip
content = "Lots of content here"
f = gzip.open('file.txt.gz', 'a', 9)
f.write(content)
f.close()
Run Code Online (Sandbox Code Playgroud)
每隔6秒左右就会在文件中附加一行(注意"附加"),但生成的文件与标准的未压缩文件一样大(完成时大约为1MB).
明确指定压缩级别似乎也没有什么区别.
如果我之后gzip一个现有的未压缩文件,它的大小可以降低到大约80kb.
我猜它不可能动态"附加"到gzip文件并让它压缩?
这是写入String.IO缓冲区然后在完成后刷新到gzip文件的情况吗?
Mar*_*ler 15
这有助于创建和维护有效的gzip文件,因为gzip格式允许连接的gzip流.
但是,在你得到糟糕压缩的意义上它不起作用,因为你给每个gzip压缩实例提供了很少的数据.压缩取决于利用以前数据的历史,但这里gzip基本上没有给出.
您可以a)在调用gzip以向文件添加另一个gzip流之前累积至少几K的数据,许多行,或者b)执行更复杂的附加到单个gzip流的事情,留下有效的每次gzip流并允许有效压缩数据.
您可以在C,gzlog.h和gzlog.c中找到b)的示例.我不相信Python拥有直接在Python中实现gzlog所需的zlib所有接口,但您可以从Python接口到C代码.
| 归档时间: |
|
| 查看次数: |
7147 次 |
| 最近记录: |