加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Golang、python关于压缩和解压的解释。

发布时间:2020-12-16 18:17:33 所属栏目:大数据 来源:网络整理
导读:golang中,存在 "compress/zlib" 这个包,里面包含各压缩解压的各项设置,比如压缩级别/压缩速度。 比如 zlib包里面的常量如下: const ( NoCompression = flate.NoCompression //无压缩 BestSpeed = flate.BestSpeed //压缩速度最快 BestCompression = flat

golang中,存在

"compress/zlib"

这个包,里面包含各压缩解压的各项设置,比如压缩级别/压缩速度。

比如 zlib包里面的常量如下:

const (
    NoCompression      = flate.NoCompression //无压缩
    BestSpeed          = flate.BestSpeed  //压缩速度最快
    BestCompression    = flate.BestCompression //压缩率最高
    DefaultCompression = flate.DefaultCompression//默认压缩
)

压缩速度和压缩率这两个是一个相互矛盾的过程,这里面的取舍还是需要各位去仔细甄别使用场景。

func main() {

   b := []byte(`china GO GO !!!的大苏打`)
   fmt.Println(string(zlibUnress(zibpress(b))))

}
func zibpress(src []byte) []byte { //应该加上异常处理
   b := new(bytes.Buffer)
   w := zlib.NewWriter(b)
   w.Write(src)
   w.Close()
   return b.Bytes()

}
func zlibUnress(src []byte) []byte { //应该加上异常处理
   b := bytes.NewReader(src)
   r,_ := zlib.NewReader(b)
   undata,err := ioutil.ReadAll(r) #建议io.copy 或者切片读取,这样会提高速度。
   if err != nil {
      return nil
   }
   defer r.Close()
   return undata
}

而在python中,压缩解压代码非常简洁。

import zlib
a=zlib.compress("china GO GO !!!的大苏打".encode('utf-8'))
print(a)
b=zlib.decompress(a)
print(str(b,encoding='utf-8') )

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读