I dag skal vi se en tutorial, der vil behandle datakomprimering og dekomprimering i Python, en meget let opgave, da vi har visse moduler, der gør det muligt for os at udføre dette arbejde med komprimering af data. Bibliotekerne er: zlib, gzip, bz2, zip -fil Y tarfile.
Gennem hele tutorialen vil vi se eksempler på nogle af bibliotekerne for at lære at bruge det, det er den bedste måde at forstå, hvordan det fungerer.
BemærkDet vil gøre brug af version 3 af Python.
Lad os starte med eksemplerne. Alle vil være enkle og lette at forstå.
1. Zlib modul
Vi kommer til at se et par eksempler med dette bibliotek, begge vil være lette som vi sagde før.
Eksempel 1
Vi har følgende kode, hvordan du kan se er kort:
import zlib som zl line = b "Dette er kun en test for selvstudiet, der skal offentliggøres i Solvetic" line_compress = zl.compress (line) print ("Ukomprimeret størrelse% d"% len (linje)) print ("Komprimeret størrelse% d "% len (line_compress))Vi komprimerer den originale linje og viser, hvad den ene og den anden optager, og får følgende output:
Nu skal vi se, hvordan man dekomprimerer i det følgende eksempel.
Eksempel 2
I den følgende kode vil vi komprimere en linje, vise den komprimeret og pakke den ud for at vise den.
import zlib som zl line = b "Test af Python zlib" line_compress = zl.compress (line) print (line_compress) line_decompress = zl.decompress (line_compress) print (line_decompress) print (line_decompress.decode ("utf-8")))Vi bruger den sidste linje i koden til at gå fra bytes til streng (ved hjælp af utf-8 i afkodning), da den næstsidste linje vil vise et b i begyndelsen. Output af programmet er som følger:
Vi går nu for at se et andet bibliotek som f.eks. Gzip.
2. Gzip modul
Eksemplerne set ovenfor er gyldige for dette bibliotek, lad os se eksempel 1 det samme som det forrige, kun ændre biblioteket.
Eksempel 1
Koden, vi har, er følgende, den samme som den forrige, og ændrer zlib til gzip:
import gzip line = b "Dette er kun en test for selvstudiet, der skal offentliggøres i Solvetic" line_compress = gzip.compress (line) print ("Ukomprimeret størrelse% d"% len (linje)) print ("Komprimeret størrelse% d" % len (line_compress))Hvis vi udfører, har vi følgende output:
Kompression vejer mere end ukomprimeret. Hvis vi ændrer teksten til en større og udfører:
Hvis du nu har forbedret størrelsen, men stadig bedre komprimerer zlib, sættes en capture, den første eksekvering bruger zlib og den anden gzip.
Lad os gå til følgende eksempel, som bliver det sidste.
Eksempel 2
Nu vil vi skrive og læse fra en fil, koden er som følger:
import gzip fw = gzip.open ('test.txt.gz', 'wb') fw.write (b "Test af gzip") fw.close () fr = gzip.open ('test.txt.gz', ' rb ') print (fr.read (). decode ("utf-8")) fr.close ()Du kan se, at vi ikke behandler de mulige undtagelser, der kan opstå, dette er blevet udeladt for at gøre eksemplet kortere og mere direkte. Hvis vi kører koden, har vi følgende output:
Vi har set nogle eksempler på brug af zlib- og gzip -bibliotekerne. Du kan konsultere den officielle Python -dokumentation for at uddybe og bedre se disse moduler og dem, der er nævnt ovenfor. Og hvis du er interesseret, forlader vi linket til en anden tutorial om Python: Serialize and deserialize.
Kan du lide og hjælpe denne vejledning?Du kan belønne forfatteren ved at trykke på denne knap for at give ham et positivt punkt