Čitatelji poput vas podržavaju MUO. Kada kupite putem poveznica na našoj stranici, možemo zaraditi partnersku proviziju. Čitaj više.

Algoritmi Gzip i Zlib popularno se koriste za kompresiju i dekompresiju datoteka. Gzip se prvenstveno koristi za komprimiranje pojedinačnih datoteka, dok Zlib uglavnom komprimira tokove podataka. Algoritmi koriste algoritam kompresije deflate za kompresiju, iako Gzip pruža dodatne značajke uključujući provjeru pogrešaka i metapodatke datoteke.

Gzip je pružio bolje omjere kompresije od Zliba. Međutim, Gzip zahtijeva više procesorske snage za kompresiju i dekompresiju podataka. U većini slučajeva trebali biste koristiti Gzip za komprimiranje datoteka i Zlib za komprimiranje tokova podataka.

Go pruža funkcionalnost za komprimiranje podataka, uključujući datoteke putem oblog paket.

Paket Compress

The oblog paket podržava komprimiranje podataka putem komprimirati/gzip i komprimirati/zlib paketi, između ostalih funkcija.

The gzip paket podržava komprimiranje i dekomprimiranje podataka gzip formata datoteke, uključujući operacije čitanja i pisanja kako je navedeno u

instagram viewer
RFC 1952. Dok zlib paket pomaže pri komprimiranju i dekomprimiranju podataka u zlib formatu.

Možete uvesti gzip i zlib od oblog paket pomoću uvoz ključna riječ.

uvoz (
"komprimirati/gzip"// uvezi gzip

"komprimirati/zlib"// uvoz zlib
)

Sažimanje i dekomprimiranje datoteka pomoću Gzipa

Gzip je format datoteke i softverska aplikacija za kompresiju i dekompresiju datoteka. Gzip koristi Lempel-Ziv-Markov lančani algoritam (LZ77) za komprimiranje podataka, a algoritam se često koristi za komprimiranje tekstualnih datoteka, kao što su HTML, CSS ili JavaScript datoteke.

Proces sažimanja datoteka s gzip paket je jednostavan i intuitivan. Morat ćete otvoriti datoteku, stvoriti gzip datoteku, izraditi gzip pisač i kopirati izvornik sadržaj datoteke u program za pisanje gzip prije operacije ispiranja koja osigurava da je proces pisanja potpuna.

Pokreni ovo naredba bash u terminalu vašeg radnog direktorija na Unix sustavima za stvaranje ogledne tekstualne datoteke i zatim umetanje teksta u datoteku.

// stvara tekstualnu datoteku.
dodir primjer.txt

// prenosi niz u datoteku
echo 'Zdravo, svijete!' > primjer.txt}

Nakon izrade datoteke i umetanja teksta, možete uvesti gzip, ja, i os paketi za operaciju kompresije.

Evo kako možete koristiti komprimirati/gzip paket za komprimiranje tekstualne datoteke.

uvoz (
"komprimirati/gzip"
"jo"
"os"
)

funkglavni() {
// Otvori izvornu datoteku
originalna datoteka, pogreška := os. Otvoren("primjer.txt")
ako pogriješiti != nula {
panika(greška)
}
odgoditi izvorna datoteka. Zatvoriti()

// Stvorite novu gzipovanu datoteku
gzippedFile, pogreška := os. Stvoriti("example.txt.gz")
ako pogriješiti != nula {
panika(greška)
}
odgoditi gzippedFile. Zatvoriti()

// Stvorite novi gzip program za pisanje
gzipWriter := gzip. NewWriter (gzippedFile)
odgoditi gzipWriter. Zatvoriti()

// Kopiraj sadržaj originalne datoteke u gzip program za pisanje
_, pogreška = io. Kopiraj (gzipWriter, originalFile)
ako pogriješiti != nula {
panika(greška)
}

// Ispraznite gzip pisač kako biste bili sigurni da su svi podaci zapisani
gzipWriter. Ispiranje()
}

The Otvoren funkcija os paket otvara tekstualnu datoteku, a Zatvoriti funkcija zatvara datoteku s a odgoditi izjava. The Stvoriti funkcija stvara gzipanu datoteku, a NewWriter funkcija gzip paket zapisuje sadržaj tekstualne datoteke u gzip datoteku pomoću Kopirati funkcija io paket.

The Ispiranje metoda gzipWriter instanca ispire gzip pisač nakon što su svi podaci dostupni u komprimiranoj datoteci.

Izvornu datoteku možete dohvatiti iz gzipane datoteke postupkom dekompresije. Proces dekompresije datoteke je sličan; otvorit ćete datoteku i izraditi gzip čitač datoteka, zatim izraditi novu datoteku za držanje nekomprimiranih podataka prije kopiranja sadržaja u novu datoteku.

uvoz (
"komprimirati/gzip"
"jo"
"os"
)

funkglavni() {
// Otvorite gzipanu datoteku
gzippedFile, pogreška := os. Otvoren("example.txt.gz")
ako pogriješiti != nula {
panika(greška)
}
odgoditi gzippedFile. Zatvoriti()

// Stvorite novi gzip čitač
gzipReader, pogreška := gzip. NewReader (gzippedFile)
odgoditi gzipReader. Zatvoriti()

// Stvorite novu datoteku za držanje nekomprimiranih podataka
nekomprimirana datoteka, pogreška := os. Stvoriti("primjer.txt")
ako pogriješiti != nula {
panika(greška)
}
odgoditi nekomprimiranaDatoteka. Zatvoriti()

// Kopiraj sadržaj gzip čitača u novu datoteku
_, pogreška = io. Kopiraj (nekomprimirana datoteka, gzipReader)
ako pogriješiti != nula {
panika(greška)
}
}

The Otvoren funkcija os paket otvara gzipanu datoteku, a NewReader funkcija gzip paket čita komprimiranu datoteku. The Stvoriti funkcija os paket stvara novu tekstualnu datoteku. The Kopirati funkcija kopira sadržaj gzipReader prema nekomprimiranaDatoteka.

Sažimanje i dekomprimiranje podataka pomoću Zliba

Zlib je biblioteka za kompresiju i dekompresiju podataka; knjižnica također koristi algoritam LZ77. Zlib je napisan u C-u i široko se koristi kao osnova za druge biblioteke i softver za kompresiju. Za razliku od gzip, zlib je knjižnica, i zlib ne uključuje a format datoteke. Međutim, često se koristi za komprimiranje podataka pohranjenih u formatima spremnika, kao što su PNG ili HTTP.

Proces sažimanja sa zlibom je isti kao i za gzip. Stvorit ćete zlib datoteku, konfigurirati program za pisanje, otvoriti izvornu datoteku i kopirati sadržaj u komprimiranu datoteku.

uvoz (
"komprimirati/zlib"
"jo"
"os"
)

funkglavni() {
// Stvorite novu datoteku "example.zlib"
datoteka, pogreška := os. Stvoriti("example.zlib")
// Ako se pojavi greška, paničarite i zaustavite program
ako pogriješiti != nula {
panika(greška)
}
// Osigurajte da je datoteka zatvorena nakon što se funkcija vrati
odgoditi datoteka. Zatvoriti()

// Stvorite novi zlib program za pisanje s najboljom razinom kompresije
književnik, griješiti := zlib. NewWriterLevel (datoteka, zlib. najbolja kompresija)
// Ako se pojavi greška, paničarite i zaustavite program
ako pogriješiti != nula {
panika(greška)
}
// Osigurajte da je program za pisanje zatvoren nakon što se funkcija vrati
odgoditi pisac. Zatvoriti()

// Otvaranje ulazne datoteke "example.txt"
ulazna datoteka, pogreška := os. Otvoren("primjer.txt")
// Ako se pojavi greška, paničarite i zaustavite program
ako pogriješiti != nula {
panika(greška)
}
// Osigurajte da je ulazna datoteka zatvorena nakon što se funkcija vrati
odgoditi ulazna datoteka. Zatvoriti()

// Kopiraj sadržaj ulazne datoteke u program za pisanje
io. Kopiraj (pisač, ulazna datoteka)
}

The Stvoriti metoda stvara zlib datoteku, a NewWriterLevel stvara program za pisanje datoteke s navedenom opcijom (u ovom slučaju, Najbolja kompresija opcija). The Otvoren metoda os paket otvara tekstualnu datoteku, a Kopirati funkcija io paket kopira sadržaj tekstualne datoteke u zlib datoteku u procesu kompresije.

Da biste dekomprimirali zlib datoteku, morat ćete otvoriti komprimiranu datoteku, stvoriti novi zlib čitač i zatim konačno kopirati sadržaj čitača na standardni izlaz.

uvoz (
"komprimirati/zlib"
"jo"
"os"
)

funkglavni() {
// Otvaranje komprimirane datoteke "compressed_file.zlib"
datoteka, pogreška := os. Otvoren("komprimirana_datoteka.zlib")
// Ako se pojavi greška, paničarite i zaustavite program
ako pogriješiti != nula {
panika(greška)
}
// Osigurajte da je datoteka zatvorena nakon što se funkcija vrati
odgoditi datoteka. Zatvoriti()

// Stvorite novi zlib čitač za komprimiranu datoteku
čitatelj, griješiti := zlib. NewReader (datoteka)
// Ako se pojavi greška, paničarite i zaustavite program
ako pogriješiti != nula {
panika(greška)
}
// Osigurajte da je čitač zatvoren nakon što se funkcija vrati
odgoditi čitač. Zatvoriti()

// Kopiraj sadržaj čitača na standardni izlaz
io. Kopiraj (os. Stdout, čitatelj)
}

Glavna funkcija otvara zlib datoteku s os paketa Otvoren funkcija, i NewReader funkcija zlib paket čita zlib datoteku u instancu čitača. The Kopirati metoda io package kopira sadržaj s čitača na standardni izlaz (u ovom slučaju konzolu).

Pisanje koda za sažimanje datoteka zgodno je za automatiziranje zadataka i sažimanje nekoliko datoteka. Ako trebate komprimirati samo nekoliko datoteka, možete se poslužiti aplikacijama kao što su WinRar, WinZip, Express Zip i Bandizip.