golang中,存在python
"compress/zlib"
這個包,裏面包含各壓縮解壓的各項設置,好比壓縮級別/壓縮速度。golang
好比 zlib包裏面的常量以下:code
const ( NoCompression = flate.NoCompression //無壓縮 BestSpeed = flate.BestSpeed //壓縮速度最快 BestCompression = flate.BestCompression //壓縮率最高 DefaultCompression = flate.DefaultCompression//默認壓縮 )
壓縮速度和壓縮率這兩個是一個相互矛盾的過程,這裏面的取捨仍是須要各位去仔細甄別使用場景。utf-8
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中,壓縮解壓代碼很是簡潔。get
import zlib a=zlib.compress("china GO GO !!!的大蘇打".encode('utf-8')) print(a) b=zlib.decompress(a) print(str(b,encoding='utf-8') )