Компресовање директоријума (фолдера) у зип или тар у Питхон-у

Бусинесс

Када компримујете цео директоријум (фолдер) у зип датотеку у Питхон-у, можете користити ос.сцандир() или ос.листдир() да направите листу датотека и користите модул зипфиле да их компримујете, али је лакше користити маке_арцхиве () схутил модула је лакши.

Поред зип-а, подржани су и други формати као што је тар.

За више информација о компримовању и декомпримовању зип датотека помоћу зипфиле модула, погледајте следећи чланак.

Компримујте директоријум (фолдер) у зип датотеку:shutil.make_archive()

Први аргумент, басе_наме, наводи име зип датотеке која се креира (без екстензије), а други аргумент, формат, специфицира формат архиве.

Следеће се може изабрати за формат аргумента.

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

Трећи аргумент, роот_дир, специфицира путању основног директоријума директоријума који треба да се компримује, а четврти аргумент, басе_дир, специфицира путању директоријума који се компримује у односу на роот_дир. Оба су подразумевано подешена на тренутни директоријум.

Ако је басе_дир изостављен, цео роот_дир ће бити компримован.

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
├── dir_sub
   └── test_sub.txt
└── test.txt

Затим, ако је директоријум у роот_дир наведен за басе_дир, биће приказано следеће.

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

Нев_схутил_суб.зип компримован са горњим подешавањима биће декомпримован на следећи начин.

dir_sub
└── test_sub.txt
Copied title and URL