Python Tarfile

Python Tarfile
Tar -filformatet brukes til å lagre eller arkivere flere filer i en fil. Dette er veldig nyttig når du sender eller sender en stor mengde/bunt filer til nettverket eller når vi trenger å arkivere de eldre filene. For UNIX -operativsystemet blir "tjære" -verktøyet først introdusert. Målet er å samle mange filer til en arkivfil, ofte referert til som en tarball, noe som gjør det enkelt å distribuere dataene. Tarfile -modulen til Pythons standardbibliotek inneholder funksjoner som hjelper til med å lage tjærefiler eller arkiver og trekke ut data etter behov fra Tarball. Arkivene kan enten opprettes uten komprimering i det hele tatt eller ved bruk av Gzip, BZ2 og LZMA.

Hva er Tarfile -modulen i Python?

Vi trenger ikke å installere Tarfile -modulen eksplisitt fordi den er en del av Python Standard Library; Alt vi trenger å gjøre er å "importere" det. Lesing og skrive tjærearkiv kan gjøres mye enklere enn det burde være på metodene som er gitt av "tarfile" python -modulen. Den innebygde "tarfile" -modulen i Python gir et kraftig grensesnitt for å skrive og lese tjærefiler.

Filmodus for å åpne Python Tar -filene

Følgende er noen filmodus som kan brukes i Python for å åpne en tarfil:

r: Åpner en tjærefil for å lese.

r: Åpner en tjærefil og leser en ukomprimert versjon av den.

w eller w: Aktiverer ukomprimert skriving ved å åpne en tjærefil.

a eller a: Åpner en tjærefil slik at dataene kan legges til den uten komprimering.

R: GZ: Åpner en GZIP-komprimert tjærefil for lesing.

W: GZ: Åpner en GZIP-komprimert tjærefil for skriving.

R: BZ2: Åpner en BZIP2 komprimert tjærefil for lesing.

W: BZ2: Åpner en BZIP2 komprimert tjærefil for skriving.

La oss nå bruke Tarfile -modulen for å forstå hvordan den fungerer i Python.

Opprette en tjærefil

Tarfile -modulen i Python gjør oss i stand til å lage tjærefiler. Åpne først en tjærefil i skrivemodus. Legg deretter til et knippe filer eller en enkelt fil i tjærefilen.

Eksempel 1: Opprette en tjærefil ved hjelp av Open () -funksjonen

Her bruker vi Open () -funksjonen for å opprette en tjærefil og Add () -metoden for å legge til andre filer i tjærefilen.

Produksjon

Her er den første inngangen til Open () -metoden navnet på vår tjærefil som må opprettes, etterfulgt av "W" -argumentet for å åpne filen (Tarfile) i skrivemodus. Filens navn som må legges til eller arkiveres til “.Tar ”-filen sendes inne i ADD () -metoden som input. Vi arkiverer tre filer i vår tjærefil ved hjelp av add () -funksjonen på et filobjekt

Eksempel 2: OS.ListDir () funksjon for å opprette og liste filer

ListDir () -metoden returnerer en liste over filer og kataloger som ligger i en spesifisert katalog. Ved hjelp av Tarfile -modulen lager vi først Tarfile. Deretter legger vi filene i vår tjærefil ved hjelp av add () -funksjonen. Etter å ha lagt til filene i tjærefilen, innhenter vi en liste over filer som er arkivert i ".Tar ”-filen ved hjelp av OS.listDir () -funksjon. For å bruke denne funksjonen, må vi importere OS -modulen.

Tjærefilen "mappe" opprettes ved å arkivere alle filene som er lagret i "data" -mappen. GetNames () -funksjonen returnerer filnavnene som er lagret i tjærefilen “-mappen”.

Hvordan bekrefte om en fil er tjære eller ikke

Ved å bruke IS_TARFILE () -metoden i Tarfile -modulen, kan vi raskt avgjøre om en fil har ".tjære ”forlengelse.

Vi passerer navnet på “my_file.tjære "-filen i is_tarfile () modulen for å sjekke om det er en tjærefil eller ikke. Funksjonen returnerer sann, noe som betyr at den spesifiserte filen er en tjærefil. La oss se etter en annen fil.

Siden “Merk.txt ”er ikke en tjærefil, funksjonen returnerer falsk som utgang.

Leser en tjærefil

Tarfile -biblioteket kan hjelpe deg med å lese tjærefiler uten å trekke dem ut først. Tarfile.Åpne (filepat, modus) kan brukes til å åpne en tjærefil i Python. Filen/banen er den absolutte eller relative plasseringen av filen som vi vil lese. Ulike typer parametere kan brukes i stedet for modus.

Vi kan også lese den åpne filen i komprimeringsmodus. En kompresjonsmetode kan eventuelt kombineres med driftsmodus. Dermed blir modus [: komprimering] den nye syntaksen. Forkortelsene som støtter kompresjonsmetodene er som følger:

  • GZ for Gzip
  • XZ for LZMA
  • BZ2 for BZ2

I forrige kode åpner vi først en BZ2 -komprimert tjærefil for skriving. Deretter åpner vi BZ2 komprimert tjærefil for lesing.

Kontrollere innholdet i tjærefilen

Ved hjelp av getNames () -funksjonen til Tarfile -modulen, kan vi se innholdet på en tjærefiler uten å trekke dem ut. Listen over filnavn returneres av GetNames () -funksjonen til Tarfile -modulen. Her åpner vi filen i “Read” -modus slik at “R” er spesifisert som det andre argumentet i Open () -funksjonen.

Vi oepn et "prosjekt.TAR ”-fil i lesemodus. GetNames () -funksjonen returnerer navnene på filer som er arkivert i “Prosjektet.TAR ”-fil. For å skrive ut innholdet/filnavnene, brukes For-loop til å iterere over filene i tjærefilen.

Legg til filer til tjærefilen

Ved å bruke Add () -funksjonen fra Tarfile -modulen, kan vi direkte legge til filer i en tjærefil, akkurat som vi gjorde da vi opprettet tjærefilen. I motsetning til tidligere eksempler, sendes “A” til Open () -metoden som det andre argumentet fordi filen må åpnes i vedleggsmodus.

Vi bruker vedleggsmodus for å åpne “Prosjektet.TAR ”-fil. Fem filer er allerede til stede i “Paoject.TAR ”-fil. Vi legger til ytterligere tre filer ved hjelp av add () -funksjonen på filobjektet.

Å trekke ut en spesifikk fil fra en tjærearkivfil

ExtractFile () -funksjonen til Tarfile -biblioteket kan brukes til å trekke ut en fil fra en arkivert mappe. Denne metoden godtar navnet på filen som inndata og trekker ut den spesifiserte filen i vår arbeidskatalog. Hvis du vil trekke ut mer enn en fil, må du ringe ExtractFile () flere ganger. Mens det henter ut et medlem som et filobjekt fra arkivet, kan et medlem være et Tarinfo -objekt eller et filnavn. En “io.BufferedReader ”-objekt returnerer hvis et medlem er en normal fil eller en lenke. Ingen presenteres for alle andre eksisterende/nåværende medlemmer. KeyError blir reist hvis et medlem er fraværende i arkivfilen.

Bøkene.XML ”-filen er trukket ut fra“ Prosjektet.TAR ”-fil.

Puttravere alle filer fra tjærefilen

ExtractAll () -funksjonen til Tarfile -biblioteket kan brukes til å trekke ut hele glidelås -filen i stedet for bare en bestemt fil. Bildet som følger viser katalogen før filene til den arkiverte filen blir trukket ut.

Hele innholdet i tjærefilen blir trukket ut i mappen i vår nåværende katalog, "Data", etter ExtractAll () -metoden. La oss nå trekke ut filene til den arkiverte filen til denne mappen.

Produksjon

Funksjonen hentet ut alle filene til den spesifiserte mappen.

Konklusjon

I denne artikkelen lærte vi hva tjærefiler eller tjærearkiv er og hvordan du bruker Pythons Tarfile -modul for å opprette, få tilgang til og administrere tjærefilene. Vi lærte filmodusene som vi kan bruke til å åpne tjærefilene i lesing, skriving og kompresjonsmodus. Vi forklarte metodene for å liste opp filene etter å arkivere dem i tjære. Vi diskuterte hvordan du legger til filene i tjærefilen. Vi lærte også hvordan en spesifikk fil eller alle filer kan trekkes ut i den gjeldende katalogen.