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 мы можем иметь больше контроля над архивом, поскольку мы можем определить, какой конкретный файл включить в архив. В нашем случае мы включим два файла в архив «гуру99.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")

Резюме

  • Чтобы заархивировать весь каталог, используйте команду «shutil.make_archive(»name»,»,zip», root_dir).
  • Чтобы выбрать файлы для архивирования, используйте команду «ZipFile.write(имя файла)».