Python ви позволява бързо да създавате zip / tar архиви.
Следващата команда ще архивира цялата директория
shutil.make_archive(output_filename, 'zip', dir_name)
Следващата команда ви дава контрол върху файловете, които искате да архивирате
ZipFile.write(filename)
Ето стъпките за създаване на Zip файл в Python
Стъпка 1) За да създадете архивен файл от Python, уверете се, че сте депозирали правилно и добре. Тук е изявлението за импортиране за архива
from shutil import make_archive
Обяснение на кода
- Импортиране на клас make_archive от модул shutil
- Използвайте функцията за разделяне, за да разделите директорията и името на файла от пътя до местоположението на текстовия файл (guru99)
- След това извикваме модула "shutil.make_archive (" guru99 archive, "zip", root_dir) ", за да създадем архивен файл, който ще бъде в zip формат
- След това предаваме в основната директория на нещата, които искаме да бъдат компресирани. Така че всичко в директорията ще бъде компресирано
- Когато стартирате кода, можете да видите, че архивният zip файл е създаден от дясната страна на панела.
Стъпка 2)
Сега вашият файл archive.zip ще се появи във вашата операционна система (Windows Explorer)
Стъпка 3) Когато щракнете двукратно върху файла, ще видите списъка с всички файлове там.
Стъпка 4) В Python можем да имаме по-голям контрол върху архива, тъй като можем да определим кой конкретен файл да включим в архива. В нашия случай ще включим два файла в архива "guru99.txt" и "guru99.txt.bak".
Обяснение на кода
- Импортирайте Zipfile клас от zip файл Python модул. Този модул дава пълен контрол върху създаването на zip файлове
- Създаваме нов Zipfile с име ("testguru99.zip," w ")
- Създаването на нов клас Zipfile изисква разрешение за предаване, защото това е файл, така че трябва да запишете информация във файла като newzip
- Използвахме променлива "newzip", за да се позовем на zip файла, който създадохме
- Използвайки функцията за запис на променливата "newzip", добавяме файловете "guru99.txt" и "guru99.txt.bak" към архива
Когато изпълните кода, можете да видите, че файлът е създаден от дясната страна на панела с име "guru99.zip"
Забележка : Тук не даваме никаква команда за "затваряне" на файла като "newzip.close", защото използваме "С" заключване на обхвата, така че когато програмата попадне извън този обхват, файлът ще бъде почистен и затворен автоматично.
Стъпка 5) Когато -> щракнете с десния бутон върху файл (testguru99.zip) и -> изберете вашата операционна система (Windows Explorer) , тя ще покаже архивните файлове в папката, както е показано по-долу.
Когато щракнете двукратно върху файла "testguru99.zip", той ще отвори друг прозорец и това ще покаже включените в него файлове.
Ето пълния код
Пример за Python 2
внос osвнос shutilот импортиране на zipfileот път за импортиране на osот shutil import make_archivedef main ():# Проверете дали файлът съществуваако path.exists ("guru99.txt"):# получавам пътя към файла в текущата директорияsrc = path.realpath ("guru99.txt");# преименувайте оригиналния файлos.rename ("кариера.guru99.txt", "guru99.txt")# сега сложете нещата в ZIP архивroot_dir, tail = path.split (src)shutil.make_archive ("guru99 архив", "zip", root_dir)# по-фин контрол върху ZIP файловес ZipFile ("testguru99.zip", "w") като newzip:newzip.write ("guru99.txt")newzip.write ("guru99.txt.bak")ако __name __ == "__main__":главен ()
Пример за Python 3
внос osвнос shutilот импортиране на zipfileот път за импортиране на osот shutil import make_archive# Проверете дали файлът съществуваако path.exists ("guru99.txt"):# получавам пътя към файла в текущата директорияsrc = path.realpath ("guru99.txt");# преименувайте оригиналния файлos.rename ("кариера.guru99.txt", "guru99.txt")# сега сложете нещата в ZIP архивroot_dir, tail = path.split (src)shutil.make_archive ("guru99 архив", "zip", root_dir)# по-фин контрол върху ZIP файловес ZipFile ("testguru99.zip", "w") като newzip:newzip.write ("guru99.txt")newzip.write ("guru99.txt.bak")
Обобщение
- За да архивирате цялата директория, използвайте командата "shutil.make_archive (" name "," zip ", root_dir)
- За да изберете файловете за zip, използвайте командата "ZipFile.write (име на файл)"