Ngompres direktori (folder) menyang zip utawa tar ing Python

Bisnis

Nalika compress kabeh direktori (folder) menyang file zip ing Python, sampeyan bisa nggunakake os.scandir () utawa os.listdir () kanggo nggawe dhaptar file lan nggunakake modul zipfile kanggo compress, nanging luwih gampang kanggo nggunakake. make_archive () modul shutil luwih gampang.

Saliyane zip, format liyane kayata tar uga didhukung.

Kanggo informasi luwih lengkap babagan compressing lan uncompressing file zip nggunakake modul zipfile, waca artikel ing ngisor iki.

Kompres direktori (folder) menyang file zip:shutil.make_archive()

Argumen pisanan, base_name, nemtokake jeneng file zip sing bakal digawe (tanpa ekstensi), lan argumen kapindho, format, nemtokake format arsip.

Ing ngisor iki bisa dipilih kanggo format argumen.

  • zip'
  • tar'
  • gztar'
  • bztar'
  • xztar'

Argumen katelu, root_dir, nemtokake path direktori root direktori sing bakal dikompres, lan argumen kaping papat, base_dir, nemtokake path direktori sing bakal dikompres relatif marang root_dir. Loro-lorone disetel menyang direktori saiki kanthi standar.

Yen base_dir diilangi, kabeh root_dir bakal dikompres.

data/temp
Contone, umpamane kita duwe direktori kanthi struktur ing ngisor iki.

dir
├── dir_sub
   └── test_sub.txt
└── test.txt
import shutil

shutil.make_archive('data/temp/new_shutil', 'zip', root_dir='data/temp/dir')

New_shutil.zip sing dikompres karo setelan ing ndhuwur ngilangi base_dir bakal dikompres kaya ing ngisor iki.

new_shutil
├── dir_sub
   └── test_sub.txt
└── test.txt

Banjur, yen direktori ing root_dir ditemtokake kanggo base_dir, ing ngisor iki bakal ditampilake.

shutil.make_archive('data/temp/new_shutil_sub', 'zip', root_dir='data/temp/dir', base_dir='dir_sub')

The new_shutil_sub.zip teken karo setelan ndhuwur bakal decompressed minangka nderek.

dir_sub
└── test_sub.txt
Copied title and URL