Извлечение данных из 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-файл был успешно распакован, и теперь вы можете изучить данные, содержащиеся в папках.
Благодарю за прочтение и счастливого вам кодинга!