Dema ku peldankek (peldankek) tev li pelek zip di Python de tê berhev kirin, hûn dikarin os.scandir() an os.listdir() bikar bînin da ku navnîşek pelan biafirînin û modula zipfile bikar bînin da ku wan tevlihev bikin, lê karanîna wê hêsantir e. make_archive () ya modula shutil hêsantir e.
Ji bilî zip, formatên din ên wekî tar jî têne piştgirî kirin.
Ji bo bêtir agahdarî li ser pelên zip û pelên zip bi karanîna modula zipfile veqetandin, ji kerema xwe li gotara jêrîn binihêrin.
- Gotarên Têkildar:zipfile ku pelên ZIP-ê di Python de berhev bike û nehêle
Peldankek (peldank) di pelek zip de tevlihev bikin:shutil.make_archive()
Argumana yekem, base_name, navê pelê zip-ê ku tê çêkirin (bê dirêjkirin) diyar dike, û argumana duyemîn, format, forma arşîvê diyar dike.
Ji bo forma argumana jêrîn dikare were hilbijartin.
zip'
tar'
gztar'
bztar'
xztar'
Argumana sêyem, root_dir, rêça pelrêça root ya pelrêça ku were komkirin destnîşan dike, û argumana çaremîn, base_dir, rêça pelrêça ku li gorî root_dir-ê were berhev kirin diyar dike. Her du jî ji hêla xwerû ve li pelrêça heyî têne danîn.
Ger base_dir were derxistin, dê tevahiya root_dir were pêçandin.
data/temp
Mînakî, bihesibînin ku pelrêçek me bi strukturek jêrîn heye.
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-ya ku bi mîhengên jorîn ve hatî berhev kirin ku bingeha_dir-ê ji holê radike, dê wekî jêrîn were hilweşandin.
new_shutil ├── dir_sub │ └── test_sub.txt └── test.txt
Dûv re, heke pelrêça di root_dir de ji bo base_dir were destnîşan kirin, dê jêrîn were xuyang kirin.
shutil.make_archive('data/temp/new_shutil_sub', 'zip', root_dir='data/temp/dir', base_dir='dir_sub')
New_shutil_sub.zip-ya ku bi mîhengên jorîn ve hatî berhev kirin dê wekî jêrîn were hilweşandin.
dir_sub
└── test_sub.txt