前言
阿里云OSS使用了snappy压缩算法保存历史文件,在实际运维工作中偶尔需要处理Snappy压缩包。
一、Snappy是什么?
Snappy是一个快速压缩算法,普遍使用在大型数据文件的快速流式压缩中。Snappy是一个C++的库,但提供了涵盖了各种主流语言的版本。
二、使用步骤
1.引入库
import snappy
2.读入数据并解包
compressed = open('/your/file/path/target_file.snappy','rb').read()
final = snappy.uncompress(compressed).decode(encoding='utf-8',errors="ignore")
3.写入解包后的文件
filename = "/your/output/path/decompressed.txt"
FILE = open(filename,"w")
FILE.writelines(final)
FILE.close()
总结
日常运维中使用python来解包snappy文件是相对最为轻量级也最为快速的方式,同时它的可扩展性也较好,如需批量或者自动化进行解包工作,python脚本也可轻易实现。