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

Python ZIP файл

Обяснение на кода

  • Импортиране на клас 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 файл

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

Python ZIP файл

Обяснение на кода

  • Импортирайте клас 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 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(име на файл)“