Извлечение данных из zip-папки с помощью Python
Порой случается такое, что у нас есть ссылка на zip-папку, которую нужно извлечь, сохранить в каталоге, а затем загрузить и визуализировать.
Для решения этой проблемы нам необходимо 4 модуля Python:
requests
: Этот модуль позволяет отправлять HTTP-запросы с помощью Python.zipfile
: Этот модуль предоставляет инструменты для создания, чтения, записи, добавления и списывания ZIP-файлов.pathlib
: Этот модуль позволяет нам обрабатывать пути к файлам и папкам современным способом.os
: Предоставляет переносимый способ использования функциональности, зависящей от операционной системы
Для примера мы будем использовать эту zip-папку.
Шаг 1: Импорт необходимых модулей Python
import requests
import zipfile
from pathlib import Path
import os
Если вы используете Google Colab, нет необходимости устанавливать пакеты вручную. Но если вы делаете это в редакторе кода, используйте pip install package-name
.
Шаг 2: Установка пути и загрузка папки
В нашем zip-файле есть папки с изображениями для пиццы, стейка и суши, и каждая из них содержит изображения, соответствующие ее названию.
# setup path to a data folder
data_path = Path("data/")
image_path = data_path / "pizza_steak_sushi"
# If the image folder doesn't exist, download it and preprare it ..
if image_path.is_dir():
print(f"{image_path} directory already exists.. skipping download")
else:
print(f"{image_path} does not exist, creating one...")
image_path.mkdir(parents=True,exist_ok=True)
Давайте считаем файл и запишем его в указанный нами путь:
# Download pizza, steak and shush data
with open (data_path/ "pizza_steak_sushi.zip","wb") as f:
request = requests.get("https://github.com/mrdbourke/pytorch-deep-learning/raw/main/data/pizza_steak_sushi.zip")
print(f"Downloading pizza, steak, sushi data...")
f.write(request.content)
Шаг 3: Распаковка загруженной zip-папки
# Unzip pizza, steak, sushi data
with zipfile.ZipFile(data_path/"pizza_steak_sushi.zip","r") as zip_ref:
print("Unzipping data ...")
zip_ref.extractall(image_path)
Zip-файл был успешно распакован, и теперь вы можете изучить данные, содержащиеся в папках.
Благодарю за прочтение и счастливого вам кодинга!