Python дээр бүх лавлах (хавтас)-ыг zip файл болгон шахахдаа os.scandir() эсвэл os.listdir() ашиглан файлуудын жагсаалтыг үүсгэж, zipfile модулийг ашиглан шахаж болно, гэхдээ ашиглахад илүү хялбар байдаг. shutil модулийн make_archive () нь илүү хялбар байдаг.
Зипээс гадна tar гэх мэт бусад форматуудыг бас дэмждэг.
Zipfile модулийг ашиглан зип файлуудыг шахах, задлах талаар дэлгэрэнгүй мэдээллийг дараах нийтлэлээс авна уу.
- Холбоотой нийтлэлүүд:zipfile нь Python дээр ZIP файлуудыг шахаж, задлах
Зааврыг (хавтас) zip файл болгон шахах:shutil.make_archive()
Эхний аргумент нь үндсэн_нэр нь үүсгэх зип файлын нэрийг (өргөтгөлгүйгээр), хоёр дахь аргумент болох формат нь архивын форматыг зааж өгдөг.
Аргументийн форматын хувьд дараахь зүйлийг сонгож болно.
zip'tar'gztar'bztar'xztar'
Гурав дахь аргумент болох root_dir нь шахагдах директорын үндсэн директорийн замыг, дөрөв дэх аргумент болох base_dir нь root_dir-тэй харьцуулахад шахагдах директорын замыг зааж өгдөг. Аль аль нь өгөгдмөлөөр одоогийн директор руу тохируулагдсан байна.
Хэрэв base_dir-г орхигдуулсан бол root_dir бүхэлд нь шахагдах болно.
data/temp
Жишээлбэл, бидэнд дараах бүтэцтэй лавлах байна гэж бодъё.
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 файлыг дараах байдлаар задлах болно.
new_shutil ├── dir_sub │ └── test_sub.txt └── test.txt
Дараа нь root_dir доторх лавлахыг base_dir-д заасан бол дараах харагдах болно.
shutil.make_archive('data/temp/new_shutil_sub', 'zip', root_dir='data/temp/dir', base_dir='dir_sub')
Дээрх тохиргоогоор шахагдсан new_shutil_sub.zip файлыг дараах байдлаар задлах болно.
dir_sub
└── test_sub.txt

