Python'da veriler nasıl sıkıştırılır ve sıkıştırılır

Bugün, bununla ilgilenecek bir eğitim göreceğiz. Python'da veri sıkıştırma ve açma, çok kolay bir görev, çünkü bu veri sıkıştırma işini gerçekleştirmemize izin verecek belirli modüllerimiz var. Kütüphaneler şunlardır: zlib, gzip, bz2, sıkıştırılmış dosya Y tar dosyası.

Eğitim boyunca, nasıl kullanılacağını öğrenmek için bazı kitaplıklardan örnekler göreceğiz, nasıl çalıştığını anlamanın en iyi yolu budur.

NotPython'un 3. sürümünü kullanacak.

Örneklerle başlayalım. Hepsi basit ve anlaşılması kolay olacak.

1. Zlib modülü


Bu kütüphane ile birkaç örnek göreceğiz, ikisi de daha önce söylediğimiz gibi kolay olacak.

örnek 1
Aşağıdaki koda sahibiz, nasıl görebileceğiniz kısa:

 zlib as zl satır = b "Bu yalnızca Solvetic'te yayınlanacak öğretici için bir testtir" line_compress = zl.compress (satır) print ("Sıkıştırılmamış boyut% d"% len (satır)) print (" Sıkıştırılmış boyut% d "% len (line_compress))
Orijinal satırı sıkıştırır ve aşağıdaki çıktıyı elde ederek birinin ve diğerinin ne işgal ettiğini gösteririz:

Şimdi aşağıdaki örnekte sıkıştırmanın nasıl açılacağını göreceğiz.

Örnek 2
Aşağıdaki kodda bir satırı sıkıştıracağız, sıkıştırılmış olarak göstereceğiz ve göstermek için sıkıştırmasını açacağız.

 zlib'i zl olarak içe aktar satır = b "Python zlib'i test etme" line_compress = zl.compress (satır) yazdır (line_compress) line_decompress = zl.decompress (line_compress) yazdır (line_decompress) yazdır (line_decompress.decode ("utf-8"))
Bayttan dizgeye gitmek için kodun son satırını kullanırız (kod çözmede utf-8 kullanarak), çünkü sondan bir önceki satır başında a b gösterecektir. Programın çıktısı aşağıdaki gibidir:

Şimdi gzip gibi başka bir kütüphaneyi görmeye gidiyoruz.

2. Gzip modülü


Yukarıda görülen örnekler bu kütüphane için geçerlidir, örnek 1'i bir öncekiyle aynı, sadece kütüphaneyi değiştirerek görelim.

örnek 1
Elimizdeki kod, öncekiyle aynı, zlib'i gzip'e değiştirerek şudur:

 import gzip line = b "Bu yalnızca Solvetic'te yayınlanacak öğretici için bir testtir" line_compress = gzip.compress (satır) print ("Sıkıştırılmamış boyut% d"% len (satır)) print ("Sıkıştırılmış boyut % d " % uzunluk (satır_sıkıştır))
Çalıştırırsak, aşağıdaki çıktıya sahibiz:

Sıkıştırma, sıkıştırılmamış olandan daha ağırdır. Metni daha büyük bir metin için değiştirir ve yürütürsek:

Şimdi boyutu iyileştirdiyseniz, ancak yine de zlib'i daha iyi sıkıştırdıysanız, bir yakalama yapılır, ilk yürütme zlib'i ve ikinci gzip'i kullanır.

Sonuncusu olacak olan aşağıdaki örneğe geçelim.

Örnek 2
Şimdi bir dosyadan yazıp okuyacağız, kod şu şekilde:

 import gzip fw = gzip.open ('test.txt.gz', 'wb') fw.write (b "gzip testi") fw.close () fr = gzip.open ('test.txt.gz', ' rb ') yazdır (fr.read (). kod çöz ("utf-8")) fr.close ()
Görüyorsunuz, ortaya çıkabilecek olası istisnalarla ilgilenmiyoruz, örneği daha kısa ve daha doğrudan hale getirmek için bu ihmal edildi. Kodu çalıştırırsak, aşağıdaki çıktıyı elde ederiz:

Zlib ve gzip kitaplıklarının bazı kullanım örneklerini gördük, bu modülleri ve yukarıda bahsedilenleri derinleştirmek ve daha iyi görmek için resmi Python belgelerine başvurabilirsiniz. Ve ilgileniyorsanız, size Python ile ilgili başka bir öğreticinin bağlantısını bırakıyoruz: Serileştirme ve serileştirme.

Bu Eğitimi beğendiniz ve yardım ettiniz mi?Yazara olumlu puan vermek için bu düğmeye basarak yazarı ödüllendirebilirsiniz.
wave wave wave wave wave