Python ZIP файл с пример
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) In Python можем да имаме повече контрол върху архива, тъй като можем да определим кой конкретен файл да включим в архива. В нашия случай ще включим два файла в архив „guru99.txt“ намлява „guru99.txt.bak“.
Обяснение на кода
- Импортирайте клас Zipfile от zip файл Python модул. Този модул дава пълен контрол върху създаването на zip файлове
- Създаваме нов Zipфайл с име (“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 Пример
import os import shutil from zipfile import ZipFile from os import path from shutil import make_archive def main(): # Check if file exists if path.exists("guru99.txt"): # get the path to the file in the current directory src = path.realpath("guru99.txt"); # rename the original file os.rename("career.guru99.txt","guru99.txt") # now put things into a ZIP archive root_dir,tail = path.split(src) shutil.make_archive("guru99 archive", "zip", root_dir) # more fine-grained control over ZIP files with ZipFile("testguru99.zip","w") as newzip: newzip.write("guru99.txt") newzip.write("guru99.txt.bak") if __name__== "__main__": main()
Python 3 Пример
import os import shutil from zipfile import ZipFile from os import path from shutil import make_archive # Check if file exists if path.exists("guru99.txt"): # get the path to the file in the current directory src = path.realpath("guru99.txt"); # rename the original file os.rename("career.guru99.txt","guru99.txt") # now put things into a ZIP archive root_dir,tail = path.split(src) shutil.make_archive("guru99 archive","zip",root_dir) # more fine-grained control over ZIP files with ZipFile("testguru99.zip", "w") as newzip: newzip.write("guru99.txt") newzip.write("guru99.txt.bak")
Oбобщение
- За да компресирате цялата директория, използвайте командата “shutil.make_archive(“name”,”zip”, root_dir)
- За да изберете файловете за компресиране, използвайте командата „ZipFile.write(име на файл)“