Python ZIP-файл із прикладом

⚡ Розумний підсумок

Python створює ZIP-архіви за допомогою вбудованих модулів shutil та zipfile. Тут ви навчитеся стискати цілий каталог за допомогою make_archive(), стискати окремі файли за допомогою ZipFile та extract, перегляд та читання вмісту архіву.

  • 🗜️ make_archive(): shutil.make_archive() стискає весь каталог у zip-файл.
  • 📄 ZipFile.write(): ZipFile.write() додає певні файли до архіву один за одним.
  • 📂 extracвисокий(): ZipFile.extractall() розпаковує кожен файл з архіву в папку.
  • 📋 список імен(): ZipFile.namelist() виводить список імен файлів у ZIP-архіві.
  • 🤖 Допомога ШІ: Інструменти штучного інтелекту, такі як Copilot, миттєво генерують поштовий індекс та розпакують його.

Python ZIP-файл

Python дозволяє швидко створювати архіви zip/tar.

Наступна команда заархівує весь каталог

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

Наступна команда дає вам контроль над файлами, які ви хочете заархівувати

ZipFile.write(filename)

Як заархівувати весь каталог у ZIP-файлі Python

Ось кроки для створення файлу Zip Python

Крок 1) Для створення архівного файлу з Python, переконайтеся, що ваш імпортний звіт правильний і в порядку. Ось оператор імпорту для архіву from shutil import make_archive

Python ZIP-файл

Code Пояснення

  • Імпортуйте клас 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-файл

Як архівувати певні файли за допомогою ZipFile

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

Python ZIP-файл

Code Пояснення

  • Імпортувати клас 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 Code створити 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")

Як поговорити про колишнього чоловікаtract (Розпакувати) ZIP-файл у Python

Щоб розпакувати архів, відкрийте його в режимі читання за допомогою ZipFile та викличте extractall() до extract кожен файл абоtract() для вилучення одного члена.

from zipfile import ZipFile

with ZipFile("testguru99.zip", "r") as myzip:
    myzip.extractall("extracted_files")

КолишнійtracМетод tall() записує всі архівні файли в папку, яку ви передаєте як аргумент.

Як переглянути список файлів у ZIP-архіві Archive

Ви можете ознайомитися з архівом без попереднього запису.tracце. Метод namelist() повертає назви всіх файлів, що зберігаються в ZIP-архіві.

from zipfile import ZipFile

with ZipFile("testguru99.zip", "r") as myzip:
    print(myzip.namelist())

Це виведе список імен файлів, що містяться в архіві.

Як прочитати файл усередині ZIP-архіву Archive

Ви можете прочитати файл учасника безпосередньо з архіву без розпакуванняping його на диск за допомогою методу open() класу ZipFile.

from zipfile import ZipFile

with ZipFile("testguru99.zip", "r") as myzip:
    with myzip.open("guru99.txt") as f:
        print(f.read())

Це корисно, коли вам потрібен лише вміст одного файлу з великого архіву.

Поширені запитання

Використовуйте shutil.make_archive(name, 'zip', root_dir) для стиснення каталогу в zip-архів або відкрийте ZipFile у режимі запису та викличте write() для додавання певних файлів до архіву.

shutil.make_archive() стискає цілий каталог за один виклик, тоді як zipfile.ZipFile надає точніший контроль, дозволяючи додавати, читати або розпакуватиtracокремі файли в архіві.

Відкрийте архів за допомогою ZipFile('file.zip', 'r') та викличте extractall('папка') до extracвсе, або колишнєtract('name') для вилучення одного файлу з архіву.

Відкрийте ZipFile у режимі читання та викличте namelist(), який повертає список усіх імен файлів, що зберігаються в архіві, без extracбудь-якого з них.

Оператор with автоматично закриває архів після завершення блоку, навіть якщо виникає помилка, тому вам не потрібно викликати close() вручну.

Помічники штучного інтелекту, такі як GitHub Copilot, автоматично завершують виклики ZipFile та make_archive(), а також генерують цикли, які стискають або розпаковують багато файлів на основі опису простою мовою.

Так. Інструменти на базі штучного інтелекту можуть автоматизувати написання скриптів резервного копіювання та архівування, вибирати між shutil та zipfile, а також додавати обробку помилок для відсутніх файлів або пошкоджених архівів.

Так. Відкрийте ZipFile, а потім використовуйте його метод open() для файлу-члена, щоб прочитати його вміст безпосередньо, без вилучення.tracзаписування всього архіву на диск.

Підсумуйте цей пост за допомогою: