Terve kataloogi (kausta) pakkimisel zip-failiks Pythonis võite kasutada os.scandir() või os.listdir(), et luua failide nimekiri ja kasutada zipfile-moodulit nende pakkimiseks, kuid lihtsam on kasutada shutil-mooduli make_archive () on lihtsam.
Lisaks zipile toetatakse ka teisi formaate, näiteks tar.
Lisateavet zip-failide pakkimise ja lahtipakkimise kohta zipfile'i mooduli abil leiate järgmisest artiklist.
- Seotud artiklid:zipfile ZIP-failide pakkimiseks ja lahtipakkimiseks Pythonis
Kataloogi (kausta) pakkimine zip-failiks:shutil.make_archive()
Esimene argument, base_name, määrab loodava zip-faili nime (ilma laiendita) ja teine argument, format, määrab arhiivivormingu.
Argumentide formaadiks saab valida järgmist.
'zip'
'tar'
'gztar'
'bztar'
'xztar'
Kolmas argument, root_dir, täpsustab tihendatava kataloogi juurkataloogi tee ja neljas argument, base_dir, täpsustab tihendatava kataloogi tee root_dir'i suhtes. Mõlemad on vaikimisi määratud praegusele kataloogile.
Kui base_dir on välja jäetud, pakitakse kogu root_dir kokku.
data/temp
Oletame näiteks, et meil on kataloog järgmise struktuuriga.
dir ├── dir_sub │ └── test_sub.txt └── test.txt
import shutil shutil.make_archive('data/temp/new_shutil', 'zip', root_dir='data/temp/dir')
Uus_shutil.zip, mis on pakitud ülaltoodud seadetega, jättes base_dir välja, dekompresseeritakse järgmiselt.
new_shutil ├── dir_sub │ └── test_sub.txt └── test.txt
Seejärel, kui kataloogi root_dir jaoks on määratud base_dir, kuvatakse järgmist.
shutil.make_archive('data/temp/new_shutil_sub', 'zip', root_dir='data/temp/dir', base_dir='dir_sub')
Ülaltoodud seadetega kokkupakitud new_shutil_sub.zip pakitakse lahti järgmiselt.
dir_sub
└── test_sub.txt