Python ZIP файл с пример
⚡ Умно обобщение
Python създава ZIP архиви с вградените модули shutil и zipfile. Тук ще научите как да компресирате цяла директория, използвайки make_archive(), да компресирате специфични файлове със ZipFile и extract, изброяване и четене на съдържанието на архива.

Python ви позволява бързо да създавате zip/tar архиви.
Следващата команда ще компресира цялата директория
shutil.make_archive(output_filename, 'zip', dir_name)
Следната команда ви дава контрол върху файловете, които искате да архивирате
ZipFile.write(filename)
Как да архивирате цяла директория в Python
Ето стъпките за създаване на Zip файл Python
Стъпка 1) За да създадете архивен файл от Python, уверете се, че вашето изявление за импортиране е правилно и в ред. Тук е извлечението за импортиране на архива from shutil import make_archive
Code Обяснение
- Импортиране на клас make_archive от модул shutil
- Използвайте функцията за разделяне, за да разделите директорията и името на файла от пътя до местоположението на текстовия файл (guru99)
- След това извикваме модула “shutil.make_archive(“guru99 archive, “zip”, root_dir)” за създаване на архивен файл, който ще бъде в zip формат
- След това предаваме в главната директория на нещата, които искаме да бъдат компресирани. Така че всичко в директорията ще бъде компресирано
- Когато стартирате кода, можете да видите, че архивният zip файл е създаден от дясната страна на панела.
Стъпка 2) След като вашият архивен файл е направен, можете да щракнете с десния бутон върху файла и да изберете операционната система и тя ще покаже вашите архивни файлове в него, както е показано по-долу
Сега вашият файл archive.zip ще се появи на вашата операционна система (Windows Explorer)
Стъпка 3) Когато щракнете двукратно върху файла, ще видите списък с всички файлове там.
Как да архивирате специфични файлове с помощта на ZipFile
Стъпка 4) In Python можем да имаме повече контрол върху архива, тъй като можем да определим кой конкретен файл да включим в архива. В нашия случай ще включим два файла в архив „guru99.txt“ намлява „guru99.txt.bak“.
Code Обяснение
- Импортирайте клас 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 Code за създаване на 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")
Как да се справиш с бившия си съпруг/аtract (Разархивиране) на ZIP файл в Python
За да разархивирате архив, отворете го в режим на четене със ZipFile и извикайте extractall() към extracвсеки файл или напримерtract() за извличане на един член.
from zipfile import ZipFile with ZipFile("testguru99.zip", "r") as myzip: myzip.extractall("extracted_files")
БившиятtracМетодът tall() записва всички архивирани файлове в папката, която подавате като аргумент.
Как да изброите файлове в ZIP файл Archive
Можете да прегледате архив без да стеtracго. Методът namelist() връща имената на всеки файл, съхранен в ZIP файла.
from zipfile import ZipFile with ZipFile("testguru99.zip", "r") as myzip: print(myzip.namelist())
Това отпечатва списък с имената на файловете, съдържащи се в архива.
Как да прочетете файл в ZIP архив Archive
Можете да прочетете файл на член директно от архива, без да го разархивирате.ping го на диск, използвайки метода open() на ZipFile.
from zipfile import ZipFile with ZipFile("testguru99.zip", "r") as myzip: with myzip.open("guru99.txt") as f: print(f.read())
Това е полезно, когато ви е необходимо само съдържанието на един файл от голям архив.







