Di Python de peldankek (peldankek) di zip an tarekê de berhev kirin

Dikan

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.

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