Kun pakkaat kokonaisen hakemiston (kansion) zip-tiedostoksi Pythonissa, voit käyttää os.scandir() tai os.listdir() luoda luettelon tiedostoista ja käyttää zipfile-moduulia niiden pakkaamiseen, mutta on helpompaa käyttää shutil-moduulin make_archive () on helpompaa.
Zip-tiedostojen lisäksi tuetaan myös muita tiedostomuotoja, kuten tar-tiedostomuotoa.
Lisätietoja zip-tiedostojen pakkaamisesta ja purkamisesta zipfile-moduulin avulla on seuraavassa artikkelissa.
- Aiheeseen liittyvät artikkelit:zipfile pakata ja purkaa ZIP-tiedostoja Pythonilla
Hakemiston (kansion) pakkaaminen zip-tiedostoksi:shutil.make_archive()
Ensimmäinen argumentti, base_name, määrittää luotavan zip-tiedoston nimen (ilman laajennusta) ja toinen argumentti, format, määrittää arkistointimuodon.
Argumenttimuodoksi voidaan valita seuraavat vaihtoehdot.
'zip'
'tar'
'gztar'
'bztar'
'xztar'
Kolmas argumentti, root_dir, määrittää pakattavan hakemiston juurihakemiston polun, ja neljäs argumentti, base_dir, määrittää pakattavan hakemiston polun suhteessa root_diriin. Molemmat asetetaan oletusarvoisesti nykyiseen hakemistoon.
Jos base_dir jätetään pois, koko root_dir pakataan.
data/temp
Oletetaan esimerkiksi, että meillä on hakemisto, jonka rakenne on seuraava.
dir ├── dir_sub │ └── test_sub.txt └── test.txt
import shutil shutil.make_archive('data/temp/new_shutil', 'zip', root_dir='data/temp/dir')
Edellä mainituilla asetuksilla pakattu new_shutil.zip-tiedosto, josta on jätetty base_dir pois, puretaan seuraavasti.
new_shutil ├── dir_sub │ └── test_sub.txt └── test.txt
Jos base_dir-hakemistoksi on määritetty root_dir-hakemisto, näyttöön tulee seuraava.
shutil.make_archive('data/temp/new_shutil_sub', 'zip', root_dir='data/temp/dir', base_dir='dir_sub')
Edellä mainituilla asetuksilla pakattu new_shutil_sub.zip puretaan seuraavasti.
dir_sub
└── test_sub.txt