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 ZIP-файл

Пояснення коду

  • Імпортуйте клас make_archive з модуля shutil
  • Використовуйте функцію split, щоб розділити каталог і назву файлу від шляху до розташування текстового файлу (guru99)
  • Потім ми викликаємо модуль “shutil.make_archive(“guru99 archive, “zip”, root_dir)” для створення файлу архіву, який буде у форматі zip.
  • Після цього ми передаємо в кореневий каталог речі, які ми хочемо заархівувати. Тому все в каталозі буде заархівовано
  • Коли ви запустите код, ви побачите, що в правій частині панелі створено архівний zip-файл.

Крок 2) Після створення архівного файлу ви можете клацнути правою кнопкою миші на файлі та вибрати ОС, і в ньому відобразяться ваші архівні файли, як показано нижче

Python ZIP-файл

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

Python ZIP-файл

Крок 3) Коли ви двічі клацнете файл, ви побачите список усіх файлів, які там є.

Python ZIP-файл

Крок 4) In Python ми можемо мати більше контролю над архівом, оскільки ми можемо визначити, який конкретний файл включити в архів. У нашому випадку ми заархівуємо два файли “guru99.txt” та “guru99.txt.bak”.

Python ZIP-файл

Пояснення коду

  • Імпортувати клас Zipfile із zip-файлу Python модуль. Цей модуль надає повний контроль над створенням zip-файлів
  • Ми створюємо новий Zip-файл з назвою ( «testguru99.zip, «w»)
  • Для створення нового класу Zipfile потрібно передати дозвіл, оскільки це файл, тому вам потрібно записати інформацію у файл як newzip
  • Ми використали змінну “newzip” для посилання на створений нами zip-файл
  • За допомогою функції записи в змінну newzip додаємо в архів файли guru99.txt і guru99.txt.bak

Коли ви виконуєте код, ви можете побачити, як у правій частині панелі створюється файл із назвою «guru99.zip»

Примітка:: тут ми не даємо жодної команди «закрити» файл, як «newzip.close», тому що ми використовуємо блокування області «With», тому, коли програма виходить за межі цієї області, файл буде очищено та закрито автоматично.

Крок 5) Коли ти -> клацніть правою кнопкою миші файл (testguru99.zip) і -> виберіть свою ОС (Windows Explorer), він покаже архівні файли в папці, як показано нижче.

Python ZIP-файл

Якщо ви двічі клацнете файл «testguru99.zip», відкриється інше вікно, у якому відображатимуться файли, які містяться в ньому.

Python ZIP-файл

Ось повний код

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)
  • Щоб вибрати файли для архівування, використовуйте команду «ZipFile.write(ім’я файлу)»