Python ZIP файл с пример

⚡ Умно обобщение

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

  • 🗜️ make_archive(): shutil.make_archive() компресира цяла директория в .zip файл.
  • 📄 ZipFile.write(): ZipFile.write() добавя конкретни файлове към архив един по един.
  • 📂 extracвисок(): ZipFile.extractall() разархивира всеки файл от архив в папка.
  • 📋 списък с имена(): ZipFile.namelist() изброява имената на файловете в ZIP архива.
  • 🤖 Помощ с изкуствен интелект: Инструменти с изкуствен интелект като Copilot генерират пощенски код и го разархивират мигновено.

Python ZIP файл

Python ви позволява бързо да създавате zip/tar архиви.

Следващата команда ще компресира цялата директория

shutil.make_archive(output_filename, 'zip', dir_name)

Следната команда ви дава контрол върху файловете, които искате да архивирате

ZipFile.write(filename)

Как да архивирате цяла директория в Python

Ето стъпките за създаване на Zip файл Python

Стъпка 1) За да създадете архивен файл от Python, уверете се, че вашето изявление за импортиране е правилно и в ред. Тук е извлечението за импортиране на архива from shutil import make_archive

Python ZIP файл

Code Обяснение

  • Импортиране на клас make_archive от модул shutil
  • Използвайте функцията за разделяне, за да разделите директорията и името на файла от пътя до местоположението на текстовия файл (guru99)
  • След това извикваме модула “shutil.make_archive(“guru99 archive, “zip”, root_dir)” за създаване на архивен файл, който ще бъде в zip формат
  • След това предаваме в главната директория на нещата, които искаме да бъдат компресирани. Така че всичко в директорията ще бъде компресирано
  • Когато стартирате кода, можете да видите, че архивният zip файл е създаден от дясната страна на панела.

Стъпка 2) След като вашият архивен файл е направен, можете да щракнете с десния бутон върху файла и да изберете операционната система и тя ще покаже вашите архивни файлове в него, както е показано по-долу

Python ZIP файл

Сега вашият файл archive.zip ще се появи на вашата операционна система (Windows Explorer)

Python ZIP файл

Стъпка 3) Когато щракнете двукратно върху файла, ще видите списък с всички файлове там.

Python ZIP файл

Как да архивирате специфични файлове с помощта на ZipFile

Стъпка 4) In Python можем да имаме повече контрол върху архива, тъй като можем да определим кой конкретен файл да включим в архива. В нашия случай ще включим два файла в архив „guru99.txt“ намлява „guru99.txt.bak“.

Python ZIP файл

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), ще покаже архивните файлове в папката, както е показано по-долу.

Python ZIP файл

Когато щракнете два пъти върху файла „testguru99.zip“, той ще отвори друг прозорец и това ще покаже файловете, включени в него.

Python 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())

Това е полезно, когато ви е необходимо само съдържанието на един файл от голям архив.

Въпроси и Отговори

Използвайте shutil.make_archive(name, 'zip', root_dir), за да архивирате директория или отворете ZipFile в режим на запис и извикайте write(), за да добавите конкретни файлове към архива.

shutil.make_archive() компресира цяла директория с едно извикване, докато zipfile.ZipFile дава по-фин контрол, позволявайки ви да добавяте, четете или разархивиратеtracотделни файлове в архива.

Отворете архива със ZipFile('file.zip', 'r') и извикайте extractall('папка') към extracвсичко или бившtract('name') за извличане на един файл от архива.

Отворете ZipFile в режим на четене и извикайте namelist(), който връща списък с всички имена на файлове, съхранени в архива, без extracправейки някой от тях.

Операторът with автоматично затваря архива, когато блокът приключи, дори ако възникне грешка, така че не е необходимо да извиквате close() ръчно.

AI асистенти като GitHub Copilot автоматично довършват ZipFile и make_archive() извиквания и генерират цикли, които компресират или разархивират много файлове от описание на разбираем език.

Да. Инструментите, задвижвани от изкуствен интелект, могат да автоматизират писането на скриптове за архивиране и архивиране, да избират между shutil и zipfile и да добавят обработка на грешки за липсващи файлове или повредени архиви.

Да. Отворете ZipFile-а, след което използвайте метода му open() върху членски файл, за да прочетете съдържанието му директно, без extracзаписване на целия архив на диск.

Обобщете тази публикация с: