Учебники

23) Python ZIP-файл с примером

Python позволяет быстро создавать архивы zip / tar.

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

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

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

ZipFile.write(filename)

Вот шаги для создания Zip-файла в Python

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

Модуль Python OS, Команды Shell Script

Код Объяснение

  • Импортировать класс make_archive из модуля shutil
  • Используйте функцию разделения, чтобы разделить каталог и имя файла от пути к местоположению текстового файла (guru99)
  • Затем мы вызываем модуль «shutil.make_archive (» guru99 archive, «zip», root_dir) «, чтобы создать архивный файл, который будет в формате zip
  • После этого мы передаем в корневой каталог вещи, которые мы хотим заархивировать. Так что все в каталоге будет заархивировано
  • Когда вы запустите код, вы увидите, что архивный zip-файл создан с правой стороны панели.

Шаг 2)

  • Как только ваш архивный файл создан, вы можете щелкнуть правой кнопкой мыши по файлу и выбрать ОС, и он покажет ваши архивные файлы в нем, как показано ниже

    Модуль Python OS, Команды Shell Script

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

    Модуль Python OS, Команды Shell Script

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

    Модуль Python OS, Команды Shell Script

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

    Модуль Python OS, Команды Shell Script

    Код Объяснение

    • Импортировать класс Zipfile из zip-файла модуля Python. Этот модуль дает полный контроль над созданием ZIP-файлов
    • Мы создаем новый Zipfile с именем («testguru99.zip,» w «)
    • Создание нового класса Zipfile, требуется передать разрешение, потому что это файл, поэтому вам нужно записать информацию в файл как newzip
    • Мы использовали переменную «newzip» для ссылки на созданный нами zip-файл
    • Используя функцию записи для переменной «newzip», мы добавляем файлы «guru99.txt» и «guru99.txt.bak» в архив

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

    Примечание . Здесь мы не даем команду «закрыть» файл, например «newzip.close», потому что мы используем блокировку области действия «С», поэтому, когда программа выходит за пределы этой области, файл будет очищен и автоматически закрыт.

    Шаг 5) Когда вы -> щелкните правой кнопкой мыши по файлу (testguru99.zip) и -> выберите свою ОС (Windows Explorer) , он покажет архивные файлы в папке, как показано ниже.

    Модуль Python OS, Команды Shell Script

    Если дважды щелкнуть файл «testguru99.zip», откроется другое окно, в котором будут показаны файлы, включенные в него.

    Модуль Python OS, Команды Shell Script

    Вот полный код

    Пример Python 2

    import os
    import shutil
    from zipfile import ZipFile
    from os import path
    from shutil import make_archive
    
    def main():
    # Check if file exists
    	if path.exists("guru99.txt"):
    # get the path to the file in the current directory
    	src = path.realpath("guru99.txt");
    # rename the original file
    	os.rename("career.guru99.txt","guru99.txt")
    # now put things into a ZIP archive
    	root_dir,tail = path.split(src)
        shutil.make_archive("guru99 archive", "zip", root_dir)
    # more fine-grained control over ZIP files
    	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
    
        # Check if file exists
           if path.exists("guru99.txt"):
        # get the path to the file in the current directory
            src = path.realpath("guru99.txt");
        # rename the original file
            os.rename("career.guru99.txt","guru99.txt")
        # now put things into a ZIP archive
            root_dir,tail = path.split(src)
            shutil.make_archive("guru99 archive","zip",root_dir)
        # more fine-grained control over ZIP files
            with ZipFile("testguru99.zip", "w") as newzip:
                newzip.write("guru99.txt")
                newzip.write("guru99.txt.bak")

    Резюме

    • Чтобы сжать весь каталог, используйте команду «shutil.make_archive (» name «,» zip «, root_dir)
    • Для выбора файлов для zip используйте команду «ZipFile.write (имя файла)»