Skip to content

Archives

  • 2022 január
  • 2021 december
  • 2021 november
  • 2021 október
  • 2021 szeptember

Categories

  • Nincs kategória
Trend RepositoryArticles and guides
Articles

gzip – A gzip fájlok támogatása¶

On november 24, 2021 by admin

Source code: Lib/gzip.py

Ez a modul egy egyszerű felületet biztosít a fájlok tömörítéséhez és kicsomagolásához, ahogyan azt a GNU gzip és gunzip programok tennék.

Az adattömörítést a zlib modul biztosítja.

A gzip modul biztosítja a GzipFile osztályt, valamint aopen(), compress() és decompress() kényelmi függvényeket.Az GzipFile osztály gzip formátumú fájlokat olvas és ír,automatikusan tömöríti vagy dekompresszálja az adatokat, hogy azok úgy nézzenek ki, mint egy közönséges fájlobjektum.

Megjegyezzük, hogy a gzip és gunzip programok által dekompresszálható további fájlformátumokat, például acompress és pack által előállítottakat ez a modul nem támogatja.

A modul a következő elemeket definiálja:

gzip.open(filename, mode=’rb’, compresslevel=9, encoding=None, errors=None, newline=None)¶

A gzip tömörített fájl megnyitása bináris vagy szöveges módban, egy fileobjektum visszaadásával.

A filename argumentum lehet egy tényleges fájlnév (egy str vagybytes objektum), vagy egy létező fájlobjektum, amelyből olvasni vagy amelybe írni szeretnénk.

A mode argumentum lehet 'r', 'rb', 'a', 'ab','w', 'wb', 'x' vagy 'xb' bináris mód esetén, vagy 'rt','at', 'wt' vagy 'xt' szöveges mód esetén. Az alapértelmezett érték 'rb'.

A compresslevel argumentum egy 0 és 9 közötti egész szám, mint aGzipFile konstruktor esetében.

Bináris módban ez a függvény megegyezik a GzipFilekonstruktorral: GzipFile(filename, mode, compresslevel). Ebben az esetben a kódolás, a hibák és az újsor argumentumokat nem kell megadni.

Szöveges mód esetén egy GzipFile objektumot hoz létre, és egyio.TextIOWrapper példányba csomagolja a megadott kódolással, hibakezelési viselkedéssel és sorvégződés(ek)kel.

Változott a 3.3-as verzióban: Hozzáadva a fájlnév fájlobjektumként való támogatását, a szöveges mód támogatását,valamint a kódolás, a hibák és az újsor argumentumokat.

Változott a 3.4-es verzióban: Hozzáadva a 'x', 'xb' és 'xt' módok támogatása.

Változott a 3.6-os verzióban: Elfogad egy útvonal-szerű objektumot.

kivételgzip.BadGzipFile¶

Az érvénytelen gzip-fájlok esetén felvetett kivétel. Örökölte a OSError-t. EOFError és zlib.error érvénytelen gzipfájlok esetén is felvethető.

Új a 3.8-as verzióban.

classgzip.GzipFile(filename=None, mode=None, compresslevel=9, fileobj=None, mtime=None)¶

Konstruktor a GzipFile osztályhoz, amely a file objektum legtöbb metódusát szimulálja, a truncate()metódus kivételével. A fileobj és a filename közül legalább az egyiknek nem triviális értéket kell adni.

Az új osztálypéldány alapja a fileobj, amely lehet egy hagyományos fájl, egyio.BytesIO objektum vagy bármilyen más, fájlt szimuláló objektum. Alapértelmezés szerint None, ebben az esetben a filename megnyílik, hogy egy fileobjet adjon meg.

Ha a fileobj nem None, a filename argumentum csak arra szolgál, hogy bekerüljön a gzip fájl fejlécébe, amely tartalmazhatja a tömörítetlen fájl eredetifilenevét. Alapértelmezés szerint a fileobj fájlneve, ha megkülönböztethető; máskülönben üres karakterlánc, és ebben az esetben az eredeti fájlnév nem szerepel a fejlécben.

A mode argumentum lehet 'r', 'rb', 'a', 'ab', 'w','wb', 'x' vagy 'xb', attól függően, hogy a fájl olvasása vagy írása történik. Az alapértelmezett a fileobj üzemmódja, ha felismerhető; egyébként az alapértelmezett 'rb'. A Python jövőbeli kiadásaiban a fileobj módját nem fogjuk használni. Jobb, ha mindig megadjuk a módot az íráshoz.

Megjegyezzük, hogy a fájl mindig bináris módban nyílik meg. Ha tömörített fájlt szöveges módban szeretnénk megnyitni, használjuk a open()-t (vagy csomagoljuk a GzipFile-t egyio.TextIOWrapper-val).

A compresslevel argumentum egy 0 és 9 közötti egész szám, amely a tömörítés szintjét szabályozza; 1 a leggyorsabb és a legkisebb tömörítést eredményezi, 9 pedig a leglassabb és a legnagyobb tömörítést. A 0 nem jelent tömörítést. Az alapértelmezett érték 9.

A mtime argumentum egy opcionális numerikus időbélyeg, amelyet tömörítéskor a folyam utolsó módosítási idő mezőjébe kell írni. Csak tömörítési módban kell megadni. Ha elhagyja vagy None, akkor az aktuális időt használja a rendszer. További részletekért lásd a mtime attribútumot.

A GzipFile objektum close() metódusának meghívása nem zárja le a fileobj-t, mivel előfordulhat, hogy a tömörített adatok után további anyagot szeretne csatolni. Ez azt is lehetővé teszi, hogy átadjunk egy írásra megnyitott io.BytesIO objektumot fileobj-ként, és az így kapott memóriapuffert a io.BytesIO objektum getvalue() metódusával hívjuk le.

GzipFile támogatja a io.BufferedIOBase interfészt,beleértve az iterációt és a with utasítást. Csak atruncate() metódus nincs implementálva.

GzipFile a következő metódust és attribútumot is biztosítja:

peek(n)¶

N tömörítetlen bájtok olvasása a fájl pozíciójának előretolása nélkül.A hívás teljesítéséhez legfeljebb egyetlen olvasás történik a tömörített folyamra. A visszakapott bájtok száma lehet több vagy kevesebb, mint a kért.

Megjegyzés

Míg a peek() hívása nem változtatja meg a GzipFile fájlpozícióját, megváltoztathatja a mögöttes fájlobjektum pozícióját (pl. ha a GzipFile afileobj paraméterrel lett létrehozva).

Újdonság a 3.2. verzióban.

mtime¶

A dekompresszió során a legutoljára olvasott fejlécben lévő utolsó módosítási idő mező értéke kiolvasható ebből az attribútumból, mint egész szám. A kezdeti érték a fejlécek beolvasása előtt None.

Minden gzip tömörített adatfolyamnak tartalmaznia kell az időbélyeg mezőt. Néhány program, például a gunzip, használja az időbélyeget. A formátum megegyezik atime.time() visszatérési értékével és a os.stat() által visszaadott objektum st_mtime attribútumával.

Változott a 3.1-es verzióban: A with utasítás támogatása, valamint a time konstruktor argumentum és a mtime attribútum hozzáadása.

Változott a 3.2. verzióban: A nullával kitöltött és nem kereshető fájlok támogatása hozzáadásra került.

Változott a 3.3. verzióban: A io.BufferedIOBase.read1() módszer implementálva lett.

Változott a 3.4. verzióban:

Változott a 3.5. verzióban: Támogatással bővült az arbitrarybytes-szerű objektumok írása.A read() módszer mostantól elfogadja aNone argumentumot.

Változott a 3.6. verzióban: Elfogad egy path-szerű objektumot.

Deprecated since version 3.9: A modeargumentum megadása nélküli GzipFile íráshoz történő megnyitása deprecated.

gzip.compress(data, compresslevel=9, *, mtime=None)¶

Tömöríti az adatokat, visszaad egy bytes objektumot, amely tartalmazza a tömörített adatokat. A compresslevel és mtime jelentése ugyanaz, mint a fenti GzipFile konstruktorban.

Új a 3.2. verzióban.

Változott a 3.8. verzióban:

gzip.decompress(data)¶

Az adatok kicsomagolása, a kicsomagolatlan adatokat tartalmazó bytes objektum visszaadása.

Új a 3.2-es verzióban.

Használati példák¶

Példa egy tömörített fájl olvasására:

import gzipwith gzip.open('/home/joe/file.txt.gz', 'rb') as f: file_content = f.read()

Példa egy tömörített GZIP fájl létrehozására:

import gzipcontent = b"Lots of content here"with gzip.open('/home/joe/file.txt.gz', 'wb') as f: f.write(content)

Példa egy meglévő fájl GZIP tömörítésére:

import gzipimport shutilwith open('/home/joe/file.txt', 'rb') as f_in: with gzip.open('/home/joe/file.txt.gz', 'wb') as f_out: shutil.copyfileobj(f_in, f_out)

Példa arra, hogyan kell egy bináris karakterláncot GZIP-tömöríteni:

import gzips_in = b"Lots of content here"s_out = gzip.compress(s_in)

Lásd még

Modul zlib

A gzip fájlformátum támogatásához szükséges alapvető adattömörítő modul.

Kommandósori felület¶

A gzip modul egyszerű parancssori felületet biztosít a fájlok tömörítéséhez vagy tömörítéséhez.

A gzip modul a végrehajtás után megtartja a bemeneti fájl(ok)at.

Változott a 3.8-as verzióban: Új parancssori felület hozzáadása a használattal.Alapértelmezés szerint a CLI végrehajtásakor az alapértelmezett tömörítési szint 6.

Parancsnoki beállítások¶

file¶

Ha nincs megadva fájl, a sys.stdin-ből olvas.

--fast¶

A leggyorsabb tömörítési módot jelzi (kevesebb tömörítés).

--best¶

A leglassabb tömörítési módszert jelzi (legjobb tömörítés).

-d, --decompress¶

A megadott fájl tömörítése.

-h, --help¶

Súgóüzenet megjelenítése.

.

Vélemény, hozzászólás? Kilépés a válaszból

Az e-mail-címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük

Archívum

  • 2022 január
  • 2021 december
  • 2021 november
  • 2021 október
  • 2021 szeptember

Meta

  • Bejelentkezés
  • Bejegyzések hírcsatorna
  • Hozzászólások hírcsatorna
  • WordPress Magyarország
  • DeutschDeutsch
  • NederlandsNederlands
  • SvenskaSvenska
  • DanskDansk
  • EspañolEspañol
  • FrançaisFrançais
  • PortuguêsPortuguês
  • ItalianoItaliano
  • RomânăRomână
  • PolskiPolski
  • ČeštinaČeština
  • MagyarMagyar
  • SuomiSuomi
  • 日本語日本語

Copyright Trend Repository 2022 | Theme by ThemeinProgress | Proudly powered by WordPress