ZIP-файлы в Python: как создать архив

ZIP-файлы в Python: как создать архив

От автора: Python позволяет быстро создать архив zip / tar. Из этой статьи вы узнаете, как создать zip-архив файлов и каталогов в Python, а также найдете примеры и пошаговое объяснение кода.

Следующая команда создает zip-архив всего каталога.

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

Следующая команда дает контроль над файлами, которые вы хотите заархивировать.

ZipFile.write(filename)

Вот последовательность создания Zip-файла в Python.

Шаг 1) Чтобы создать архивный файл, убедитесь, что вы правильно указали оператор импорта. Здесь оператор импорта для архива from shutil import make_archive

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

Импортируем класс make_archive из модуля shutil

Используйте функцию split, чтобы разделить каталог и имя файла из пути к местоположению текстового файла (guru99)

Затем мы вызываем модуль «shutil.make_archive(» guru99 archive, «zip», root_dir)», чтобы создать архивный файл в формате zip

После этого мы передаем в корневой каталог элементы, которые хотим заархивировать. Все в каталоге будет заархивировано

Когда вы запустите код, вы увидите, что архивный zip-файл с правой стороны панели.

Шаг 2) Когда архивный файл создан, вы можете кликнуть правой кнопкой мыши на файле и выбрать ОС, это покажет содержащиеся файлы.

Теперь файл archive.zip появится в ОС (Windows Explorer).

Шаг 3) Когда вы дважды кликните на архиве, вы увидите список всех файлов в нем.

Шаг 4) В Python мы можем лучше контролировать архив, так как мы можем определить, какой конкретный файл включить в него. В нашем случае мы включим два файла «guru99.txt» и «guru99.txt.bak».

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

Импортируем класс Zipfile из модуля Python. Этот модуль дает полный контроль над созданием ZIP-файлов

Мы создаем новый ZIP-файл с именем («testguru99.zip,» w «)

Для создания нового класса Zipfile, требуется передать доступы, потому что это файл, поэтому вам нужно записать информацию в файл как newzip

Мы использовали переменную «newzip» для ссылки на созданный нами zip-файл

Используя функцию записи для переменной «newzip», мы добавляем файлы «guru99.txt» и «guru99.txt.bak» в архив.

Когда вы выполните код, вы увидите, что файл создан в правой стороне панели с именем «guru99.zip».

Примечание. Здесь мы не выполняем команду «close» файл, например «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():
# Проверяем, существует ли файл if path.exists("guru99.txt"):
# Получаем путь к файлу в текущем каталоге src = path.realpath("guru99.txt");
# Переименовываем оригинальный файл os.rename("career.guru99.txt","guru99.txt")
# помещаем вещи в ZIP-архив root_dir,tail = path.split(src) shutil.make_archive("guru99 archive", "zip", root_dir)
# больше контроля над ZIP-файлом 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 # Проверяем, существует ли файл if path.exists("guru99.txt"):
# Получаем путь к файлу в текущем каталоге src = path.realpath("guru99.txt");
# Переименовываем оригинальный файл os.rename("career.guru99.txt","guru99.txt")
# помещаем вещи в ZIP-архив root_dir,tail = path.split(src) shutil.make_archive("guru99 archive","zip",root_dir)
# больше контроля над ZIP-файлом 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(filename)»

Источник: https://www.guru99.com

Редакция: Команда webformyself.