Zip-файлы являются популярным способом сжатия и объединения нескольких файлов в один архив. Они часто используются для задач, таких как сжатие файлов, резервное копирование данных и распространение файлов. Сжатие или архивация файлов в Python является полезным способом экономии места на жестком диске и упрощения передачи файлов через интернет.
Как Архивировать Файл в Python
Модуль zipfile в Python предоставляет функциональные возможности для создания, чтения, записи, добавления и извлечения ZIP-файлов.
Архивирование Одного Файла
Вы можете использовать модуль zipfile
для создания zip файла, содержащего один файл. Вот как это можно сделать:
import zipfile
# name of the new Zip file
zip_file_name = 'new_zip_file.zip'
# name of the source file
file_name = 'file_to_compress.txt'
# Create a ZipFile Object
zip_object = zipfile.ZipFile(zip_file_name, 'w')
# Add the source file to the zip file
zip_object.write(file_name, compress_type=zipfile.ZIP_DEFLATED)
# Close the Zip File
zip_object.close()
В приведенном выше коде мы сначала импортировали модуль zipfile
. Затем мы определили имя zip-файла и имя исходного файла. Мы создали объект ZipFile
и добавили в него исходный файл, используя метод write()
. Затем мы закрыли zip-файл, используя метод close()
.
Создание Zip-Архива с Несколькими Файлами
Вы также можете создать zip-файл, содержащий несколько файлов. Вот пример:
import zipfile
# name of the new Zip file
zip_file_name = 'new_zip_file.zip'
# names of the source files
file_names = ['file_to_compressed1.txt',
'file_to_compressed2.txt',
'file_to_compressed3.txt'
]
# Create a ZipFile Object
zip_object = zipfile.ZipFile(zip_file_name, 'w')
# Add multiple files to the zip file
for file_name in file_names:
zip_object.write(file_name, compress_type=zipfile.ZIP_DEFLATED)
# Close the Zip File
zip_object.close()
В приведенном выше примере мы определили имена нескольких исходных файлов в списке. Затем мы добавили каждый из этих файлов в zip-файл, используя цикл for
и метод write()
. Наконец, мы закрыли zip-файл, используя метод close()
.
Чтобы ещё сильнее сжать zip-файл, можно установить аргумент compress_type
в значение zipfile.ZIP_DEFLATED
. Это применяет метод сжатия DEFLATE к добавляемым файлам.
Распаковать Файл в Python
Используя модуль zipfile
, распаковать zip-файлы в Python очень просто. Вот два способа сделать это:
import zipfile
with zipfile.ZipFile('myzipfile.zip', 'r') as zip_ref:
zip_ref.extractall('destination_folder')
В этом примере мы сначала импортируем модуль zipfile
. Затем мы создаем экземпляр класса ZipFile
для zip-файла, который хотим извлечь. Аргумент r
указывает на то, что мы хотим прочитать из zip-файла, а myzipfile.zip
- это имя файла, который мы хотим извлечь.
Метод extractall()
извлекает все файлы из zip-файла и сохраняет их в указанную destination_folder
. Если destination_folder
не существует, она будет создана.
import zipfile
with zipfile.ZipFile('myzipfile.zip', 'r') as zip_ref:
for file in zip_ref.namelist():
if file.endswith('.txt'):
zip_ref.extract(file, 'destination_folder')
В этом примере мы снова импортируем модуль zipfile
и создаем экземпляр класса ZipFile
. Затем мы перебираем все файлы в zip-архиве, используя namelist()
. Если файл имеет расширение .txt
, мы извлекаем его в destination_folder
.
Используя эти два примера кода, вы можете легко извлечь файлы из zip-архивов в Python. Не забудьте настроить пути к файлам и именование, чтобы они соответствовали вашим конкретным потребностям.
Пишите вместе с нами!
Вы можете внести свой вклад в статьи о Python на GitHub: создайте Fork, внесите правки и отправьте нам Pull request.