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
Пояснення коду
- Імпортуйте клас make_archive з модуля shutil
- Використовуйте функцію split, щоб розділити каталог і назву файлу від шляху до розташування текстового файлу (guru99)
- Потім ми викликаємо модуль “shutil.make_archive(“guru99 archive, “zip”, root_dir)” для створення файлу архіву, який буде у форматі zip.
- Після цього ми передаємо в кореневий каталог речі, які ми хочемо заархівувати. Тому все в каталозі буде заархівовано
- Коли ви запустите код, ви побачите, що в правій частині панелі створено архівний zip-файл.
Крок 2) Після створення архівного файлу ви можете клацнути правою кнопкою миші на файлі та вибрати ОС, і в ньому відобразяться ваші архівні файли, як показано нижче
Тепер ваш файл archive.zip з’явиться у вашій ОС (Windows Explorer)
Крок 3) Коли ви двічі клацнете файл, ви побачите список усіх файлів, які там є.
Крок 4) In Python ми можемо мати більше контролю над архівом, оскільки ми можемо визначити, який конкретний файл включити в архів. У нашому випадку ми заархівуємо два файли “guru99.txt” та “guru99.txt.bak”.
Пояснення коду
- Імпортувати клас 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), він покаже архівні файли в папці, як показано нижче.
Якщо ви двічі клацнете файл «testguru99.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(ім’я файлу)»