Hakemiston (kansion) pakkaaminen zip- tai tar-tiedostoksi Pythonissa

liiketoiminta

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.

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
Copied title and URL