Рубрики
Без рубрики

Распакуйте файл в Python: 5 Сценариев, которые вы должны знать

Для распаковки файлов в python используется модуль zipfile. Этот модуль отвечает за извлечение и чтение всех файлов из zip-файла.

Автор оригинала: Team Python Pool.

Распакуйте файл в Python: 5 Сценариев, которые вы должны знать

Если вы некоторое время находитесь в мире IT, вы должны знать о распаковке или извлечении файла. Более 70% файлов, представленных в Интернете, имеют форму сжатого файла без потерь (например, zip, jpeg, tar, rar). На рынке существуют различные приложения для распаковки файлов. Одним из самых популярных программ для распаковки или извлечения является Winrar. Но в сегодняшней статье мы узнаем, как мы можем распаковать файл в Python.

В этом конкретном уроке мы узнаем, как работать с 5 различными сценариями, когда мы хотим извлечь или распаковать файл в Python. Для всех тех, кто не знает, что такое экстракция, позвольте мне вкратце объяснить вам это. Распаковка-это термин, используемый для описания процесса распаковки и перемещения одного или нескольких файлов в сжатом заархивированном файле в другое место.

Давайте рассмотрим различные условия, в которых мы можем извлечь файл с помощью Python.

5 Ситуаций, в Которых Вы Можете Извлечь Файл С помощью Python

  • Извлечение только одного файла
  • Распакуйте все/несколько файлов из zip – файла в текущий каталог
  • Извлечение всех файлов в другой каталог
  • Распаковка только некоторых конкретных файлов на основе различных условий
  • Распаковка защищенного паролем zip-файла с помощью extractall()

Пора кодировать!

Модуль, используемый для распаковки файла в Python

Чтобы извлечь файл с помощью Python, мы будем использовать href=”https://docs.python.org/3/library/zipfile.html#module-zipfile”>zipfile модуль в python. Модуль zipfile используется для доступа к функциям, которые помогут нам создавать, читать, записывать, извлекать и перечислять ZIP-файл в Python. href=”https://docs.python.org/3/library/zipfile.html#module-zipfile”>zipfile модуль в python. Модуль zipfile используется для доступа к функциям, которые помогут нам создавать, читать, записывать, извлекать и перечислять ZIP-файл в Python.

Синтаксис

Параметры

  • path: Этот параметр path хранит путь к каталогу, в котором должны быть распакованы zip-файлы. Если он не указан, то файл извлекается в текущий рабочий каталог.
  • members: Этот параметр используется для добавления списка извлекаемых файлов. Если аргумент не указан, он извлечет все файлы.
  • pwd: Этот параметр используется для извлечения зашифрованного файла с паролем.

1. Извлечение только одного файла

Иногда для выполнения нашей задачи нам требуется только определенный файл из zip-файла. В таких случаях извлечение целых zip-файлов потребует времени, а также памяти вашего компьютера. Чтобы избежать этого, есть возможность извлечь конкретный файл/папку из zip-архива и сохранить его на вашем компьютере. Следующий код демонстрирует это –

Код –

В настоящее время наш почтовый файл содержит три файла ... a.txt", "p.txt", и "pool.txt"

import zipfile


try:
    with zipfile.ZipFile(zip_file) as z:
        with open(file_to_extract, 'wb') as f:
            f.write(z.read(file_to_extract))
            print("Extracted", file_to_extract)
except:
    print("Invalid file")

Выход –

Extracted a.txt

Объяснение –

Во - первых, мы импортируем zip-файл модуля в первой строке. После этого нам нужно объявить некоторые постоянные переменные, которые могут быть использованы позже в коде. В этом конкретном примере мы извлекли "a.txt" из zip-файла "a.zip". С помощью функции Zip File.read() вы можете сохранить двоичное значение файла в переменной, и эта переменная может быть сброшена в локальный файл для его извлечения.

2. Распакуйте все/несколько файлов из zip-файла в текущий каталог в Python

Извлечение всех файлов с помощью python - одна из лучших функций python. Если на вашем компьютере установлен python, вам даже не нужно программное обеспечение, такое как Winrar, для извлечения zip-файлов. Более того, вы можете не только извлекать zip-файлы, но и". tar.gz', '.apk', '.rar' и другие форматы тоже. Что еще более интересно, так это то, что вам не нужно объявлять какой-либо тип молнии. Модуль автоматически определяет, является ли он zip, rar или другими форматами.

Код –

import zipfile


try:
    with zipfile.ZipFile(zip_file) as z:
        z.extractall()
        print("Extracted all")
except:
    print("Invalid file")

Выход –

Extracted all

Объяснение –

По умолчанию мы импортируем модуль zipfile в первый файл. Затем мы используем контекстный менеджер для использования класса ZipFile. С помощью этого метода вам не нужно закрывать zip-файл после его открытия. Используя метод extractall (), вы можете извлечь все файлы в текущем каталоге вашего кода python.

3. Извлечение всех файлов в другой каталог в Python

Очень важно научиться управлять файлами в программировании. Вы должны создать лучшее пространство для ваших файлов, чтобы избежать каких-либо хлопот в одной папке. Используя метод extractall с параметром, вы можете извлечь zip-файл в любую нужную папку. Если каталог отсутствует, модуль автоматически создаст новый пустой каталог.

Код –

import zipfile


try:
    with zipfile.ZipFile(zip_file) as z:
        z.extractall("temp")
        print("Extracted all")
except:
    print("Invalid file")

Выход –

Extracted all

Объяснение –

Мы импортируем модуль zipfile и открываем zip-файл с помощью класса ZipFile. С помощью extractall(path) вы можете извлечь все содержимое внутри zip-файла по специально указанному пути. Если каталог уже присутствует, все файлы будут перезаписаны. Если каталог отсутствует, будет создана новая пустая папка.

4. Распаковка только некоторых конкретных файлов на основе различных условий в Python

Очень удобно извлекать определенные типы файлов из zip-файла. Предположим, у вас есть zip-файл, содержащий изображения, видео и другие типы файлов, и вам нужно извлечь только изображения. Тогда условное извлечение поможет вам. Для их извлечения можно использовать метод namelist() с условиями.

Код –

В настоящее время наш почтовый файл содержит три файла ... a.txt", "p.txt", "pool.txt", "a.jpeg", "b.jpeg" и "a.mp4"

import zipfile

try:
    with zipfile.ZipFile(zip_file) as z:
        for file in z.namelist():
            if file.endswith(endswith):
                z.extract(file)
        print("Extracted all ", endswith)
except:
    print("Invalid file")

Выход –

Extracted all  .jpeg

Объяснение –

Начнем с импорта модуля zipfile. Затем мы объявляем некоторые константы, а другие-zip-файл в качестве контекстного менеджера. Все имена файлов из zip-файла можно получить с помощью метода namelist (). Этот метод возвращает список всех файловых объектов. Затем мы проверяем, заканчивается ли файл определенным форматом файла (в нашем случае мы использовали формат". jpeg").

Если файл заканчивается определенным расширением, то мы можем извлечь его. Все файлы будут извлечены в одну и ту же папку. Если вы хотите извлечь их в определенную папку, используйте параметр path в методе extractall ().

5. Распаковка защищенных паролем Zip-файлов с помощью extract all() в Python

Одна из особенностей zip-файлов заключается в том, что к ним можно применить пароль. Кроме того, вы также можете зашифровать имена файлов, чтобы сделать это более сложным. В этом разделе мы обсудим только базовый менеджер паролей для zip-файлов и то, как их использовать.

Примечание – Каждое программное обеспечение использует другую технику шифрования, и может случиться так, что вы не сможете извлечь его с помощью python. Если вы знаете о правильном шифровании вашего zip-файла, используйте модуль payzippy для создания правильного zip-объекта.

Код –

import zipfile

try:
    with zipfile.ZipFile(zip_file) as z:
        z.setpassword(bytes("pythonpool","utf-8"))
        z.extractall()
        print("Extracted all ")
except Exception as e:
    print("Invalid file", e)

Выход –

Extracted all

Объяснение –

Мы импортируем модуль zipfile и открываем zip-файл с помощью контекстного менеджера. Метод setpassword позволяет инициализировать пароль для вашего zip-файла. Единственное условие состоит в том, что он принимает байты объекта в качестве входных данных. Мы использовали функцию bytes() для преобразования нашей строки в байты. Наконец, используя метод extractall (), вы можете распаковать все файлы из zip-архива.

Если zip-файл сжимается таким программным обеспечением, как WinRAR, вам нужно использовать модуль my zipper, который имеет расширенные методы определения алгоритмов.

Надо Читать

  • Исключение Гаусса в Python: Иллюстрация и реализация
  • Битоническая сортировка: Алгоритм и реализация в Python
  • Введение в Python для разработки Android

Заключительные Слова

Python оказался одним из лучших языков программирования с поддержкой тысяч модулей. С помощью простых в написании синтаксисов и API для каждого системного модуля вы можете создавать красивые приложения для облегчения ваших задач. Python unzip file - это одна из функций, которая позволяет автоматизировать ваши задачи извлечения.

Поделитесь этим постом со своими друзьями и дайте им знать об этом удивительном модуле!