Python ZIP-tiedosto esimerkin kanssa

โšก ร„lykรคs yhteenveto

Python luo ZIP-arkistoja sisรครคnrakennetuilla shutil- ja zipfile-moduuleilla. Tรคssรค opit pakkaamaan kokonaisen hakemiston kรคyttรคmรคllรค make_archive()-funktiota, pakkaamaan tiettyjรค tiedostoja ZipFile-funktiolla ja esim.tract, listaa ja lue arkiston sisรคltรถ.

  • ๐Ÿ—œ๏ธ tee_arkisto(): shutil.make_archive() pakkaa koko hakemiston .zip-tiedostoon.
  • ๐Ÿ“„ ZipFile.write(): ZipFile.write() lisรครค tiettyjรค tiedostoja arkistoon yksi kerrallaan.
  • ๐Ÿ“‚ extracpitkรค(): ZipFile.extractall() purkaa jokaisen tiedoston arkistosta kansioon.
  • ๐Ÿ“‹ nimilista(): ZipFile.namelist() listaa ZIP-arkiston tiedostonimet.
  • ๐Ÿค– Tekoรคlyn apu: Tekoรคlytyรถkalut, kuten Copilot, luovat postinumeron ja purkavat sen vรคlittรถmรคsti.

Python ZIP-tiedosto

Python voit luoda nopeasti zip/tar-arkistoja.

Seuraava komento pakkaa koko hakemiston

shutil.make_archive(output_filename, 'zip', dir_name)

Seuraava komento antaa sinun hallita tiedostoja, jotka haluat arkistoida

ZipFile.write(filename)

Kuinka pakata koko hakemisto zip-tiedostoon Python

Tรคssรค on vaiheet Zip-tiedoston luomiseen Python

Vaihe 1) Luodaksesi arkistotiedoston kohteesta Python, varmista, ettรค tuontiseloste on oikein ja kunnossa. Tรคssรค on arkiston tuontilausunto from shutil import make_archive

Python ZIP-tiedosto

Code Selitys

  • Tuo make_archive-luokka moduulista shutil
  • Kรคytรค split-toimintoa jakaaksesi hakemiston ja tiedostonimen polusta tekstitiedoston sijaintiin (guru99)
  • Sitten kutsumme moduulia "shutil.make_archive("guru99 archive, "zip", root_dir)" luodaksemme arkistotiedoston, joka on zip-muodossa
  • Sen jรคlkeen siirrรคmme juurihakemistoon asiat, jotka haluamme pakata. Joten kaikki hakemistossa oleva pakataan
  • Kun suoritat koodin, nรคet, ettรค arkiston zip-tiedosto on luotu paneelin oikealla puolella.

Vaihe 2) Kun arkistotiedostosi on luotu, voit napsauttaa tiedostoa hiiren kakkospainikkeella ja valita kรคyttรถjรคrjestelmรคn, jolloin se nรคyttรครค arkistotiedostosi alla olevan kuvan mukaisesti.

Python ZIP-tiedosto

Nyt archive.zip-tiedostosi nรคkyy kรคyttรถjรคrjestelmรคssรคsi (Windows Explorer)

Python ZIP-tiedosto

Vaihe 3) Kun kaksoisnapsautat tiedostoa, nรคet luettelon kaikista siellรค olevista tiedostoista.

Python ZIP-tiedosto

Tiedostojen pakkaaminen zip-tiedostoina ZipFilen avulla

Vaihe 4) In Python voimme hallita arkistoa paremmin, koska voimme mรครคrittรครค, mikรค tiedosto sisรคllytetรครคn arkiston alle. Meidรคn tapauksessamme sisรคllytรคmme kaksi tiedostoa arkistoon "guru99.txt" ja "guru99.txt.bak".

Python ZIP-tiedosto

Code Selitys

  • Tuo Zipfile-luokka zip-tiedostosta Python moduuli. Tรคmรค moduuli antaa tรคyden hallinnan zip-tiedostojen luomiseen
  • Luomme uuden Zip-tiedoston nimellรค ("testguru99.zip, "w)
  • Uuden Zipfile-luokan luominen vaatii luvan, koska se on tiedosto, joten sinun on kirjoitettava tiedot tiedostoon newzip-muodossa
  • Kรคytimme muuttujaa "newzip" viittaamaan luomaani zip-tiedostoon
  • Kรคyttรคmรคllรค "newzip"-muuttujan kirjoitustoimintoa lisรครคmme tiedostot "guru99.txt" ja "guru99.txt.bak" arkistoon

Kun suoritat koodin, nรคet, ettรค tiedosto on luotu paneelin oikealle puolelle nimellรค "guru99.zip".

Huomautuksia: Tรครคllรค emme anna mitรครคn komentoa "sulkea" tiedosto, kuten "newzip.close", koska kรคytรคmme "With"-suojauslukkoa, joten kun ohjelma jรครค tรคmรคn soveltamisalan ulkopuolelle, tiedosto siivotaan ja suljetaan automaattisesti.

Vaihe 5) Kun olet -> napsauta hiiren oikealla painikkeella tiedostoa (testguru99.zip) ja -> valitse kรคyttรถjรคrjestelmรคsi (Windows Explorer), se nรคyttรครค kansion arkistotiedostot alla olevan kuvan mukaisesti.

Python ZIP-tiedosto

Kun kaksoisnapsautat tiedostoa "testguru99.zip", se avaa toisen ikkunan, ja tรคmรค nรคyttรครค siihen sisรคltyvรคt tiedostot.

Python ZIP-tiedosto

Tรคydellinen Python Code ZIP-tiedoston luominen

Tรคssรค on tรคydellinen koodi

Python 2-esimerkki

import os
import shutil
from zipfile import ZipFile
from os import path
from shutil import make_archive

def main():
# Check if file exists
	if path.exists("guru99.txt"):
# get the path to the file in the current directory
	src = path.realpath("guru99.txt");
# rename the original file
	os.rename("career.guru99.txt","guru99.txt")
# now put things into a ZIP archive
	root_dir,tail = path.split(src)
    shutil.make_archive("guru99 archive", "zip", root_dir)
# more fine-grained control over ZIP files
	with ZipFile("testguru99.zip","w") as newzip:
	newzip.write("guru99.txt")
	    newzip.write("guru99.txt.bak")
if __name__== "__main__":
	  main()

Python 3-esimerkki

import os
import shutil
from zipfile import ZipFile
from os import path
from shutil import make_archive

    # Check if file exists
       if path.exists("guru99.txt"):
    # get the path to the file in the current directory
        src = path.realpath("guru99.txt");
    # rename the original file
        os.rename("career.guru99.txt","guru99.txt")
    # now put things into a ZIP archive
        root_dir,tail = path.split(src)
        shutil.make_archive("guru99 archive","zip",root_dir)
    # more fine-grained control over ZIP files
        with ZipFile("testguru99.zip", "w") as newzip:
            newzip.write("guru99.txt")
            newzip.write("guru99.txt.bak")

Kuinka exรคksitract (Pura) ZIP-tiedosto kohdassa Python

Purkaaksesi arkiston, avaa se lukutilassa ZipFile-komennolla ja kutsu ex-komentoa.tractall() ex:lletract jokainen tiedosto tai esim.tract() vetรครคkseen pois yhden jรคsenen.

from zipfile import ZipFile

with ZipFile("testguru99.zip", "r") as myzip:
    myzip.extractall("extracted_files")

Entinentractall()-metodi kirjoittaa kaikki arkistoidut tiedostot argumenttina antamaasi kansioon.

Tiedostojen listaaminen ZIP-tiedostossa Archive

Voit tarkastella arkistoa ilman ex-tiedostoatracting sitรค. Namelist()-metodi palauttaa kaikkien ZIP-tiedostoon tallennettujen tiedostojen nimet.

from zipfile import ZipFile

with ZipFile("testguru99.zip", "r") as myzip:
    print(myzip.namelist())

Tรคmรค tulostaa luettelon arkistossa olevista tiedostonimistรค.

ZIP-tiedoston sisรคltรคmรคn tiedoston lukeminen Archive

Voit lukea jรคsentiedoston suoraan arkistosta purkamatta sitรคping se levylle ZipFilen open()-metodilla.

from zipfile import ZipFile

with ZipFile("testguru99.zip", "r") as myzip:
    with myzip.open("guru99.txt") as f:
        print(f.read())

Tรคmรค on hyรถdyllistรค, kun tarvitset vain yhden tiedoston sisรคllรถn suuresta arkistosta.

UKK

Kรคytรค shutil.make_archive(name, 'zip', root_dir) -funktiota pakataksesi kansion zip-tiedostona tai avaa ZipFile-tiedosto kirjoitustilassa ja kutsu write()-funktiota lisรคtรคksesi tiettyjรค tiedostoja arkistoon.

shutil.make_archive() pakkaa koko hakemiston yhdelle kutsulle, kun taas zipfile.ZipFile tarjoaa tarkempaa hallintaa, sillรค voit lisรคtรค, lukea tai poistaatracyksittรคisiรค tiedostoja arkistossa.

Avaa arkisto funktiolla ZipFile('file.zip', 'r') ja kutsu funktiota extractall('kansio') ex:รครคntrackaikki tai esim.tract('nimi') hakee yhden tiedoston arkistosta.

Avaa ZipFile lukutilassa ja kutsu namelist(), joka palauttaa listan kaikista arkistoon tallennetuista tiedostonimistรค ilman ex-etikettejรค.tracmitรค tahansa niistรค.

With-lauseke sulkee arkiston automaattisesti lohkon pรครคttyessรค, vaikka tapahtuisi virhe, joten sinun ei tarvitse kutsua close()-funktiota manuaalisesti.

GitHub Copilotin kaltaiset tekoรคlyavustajat tรคydentรคvรคt ZipFile- ja make_archive()-kutsuja automaattisesti ja luovat silmukoita, jotka pakkaavat tai purkavat useita tiedostoja selkokielisestรค kuvauksesta.

Kyllรค. Tekoรคlyllรค toimivat tyรถkalut voivat automatisoida varmuuskopiointi- ja arkistointiskriptien kirjoittamisen, valita shutil- ja zipfile-tiedostojen vรคlillรค ja lisรคtรค virheidenkรคsittelyn puuttuville tiedostoille tai vioittuneille arkistoille.

Kyllรค. Avaa ZipFile ja kรคytรค sitten sen open()-metodia jรคsentiedostoon lukeaksesi sen sisรคllรถn suoraan ilman ex-lausetta.trackoko arkiston tallentaminen levylle.

Tiivistรค tรคmรค viesti seuraavasti: