В python 3.5 есть очень полезный модуль — zipfile. С помощью него можно читать zip-архивы, а что самое главное — создавать новые. Мне для одной темы понадобилось создавать архивы массово, по 20 файлов в архиве. И для решения этой задачи я как раз и воспользовался библиотекой zipfile. В этой статье я покажу примеры использования zipfile в python.
У меня стоит версия питона 3.5 и модуль zipfile входит в его состав. Для его вызова достаточно написать привычное import zipfile. Если в вашей версии питона нет этой библиотеки, то ее можно установить через pip или easy install.
Импортируем модуль, создаем, закрываем файл. Код:
import zipfile #подключаем модуль newzip=zipfile.ZipFile(r'C:\bdseoru.zip','w') #создаем архив newzip.close() #закрываем архив
На экран естественно ничего не появится, тут нет print. Если хотите увидеть что все ок — добавьте print, а еще лучше — воспользуйтесь исключениями.
import zipfile #подключаем модуль try: newzip=zipfile.ZipFile(r'C:\bdseoru.zip','w') #создаем архив print("Архив bdseoru.zip на диске С:/ создан.") newzip.close() #закрываем архив except: print("Что-то пошло не так...")
Результат — на диске С появился архив размером 22 байта.
import zipfile #подключаем модуль zname=r'D:\bdseoru.zip' #создаем переменную - название и местоположение файла newzip=zipfile.ZipFile(zname,'w') #создаем архив newzip.write(r'D:\kakzarabotat_milion.txt') #добавляем файл в архив newzip.write(r'D:\blogwebmastera_links.txt') #добавляем файл2 в архив newzip.close() #закрываем архив
В коде выше я добавил два файла. Если нужно добавить много файлов с какой-то папки воспользуйтесь циклом. А для чтения с папок модуль os.
import zipfile zip1 = zipfile.ZipFile('C:\example_bdseoru.zip', 'r') print(zip1.namelist())
В общем, модуль zipfile решает много задач. Более подробнее о zipfile читайте на странице документации:
https://docs.python.org/3/library/zipfile.html.
Также советую заглянуть сюда — https://pymotw.com/3/zipfile/ , там есть примеры использования zipfile.
Очень много разговоров в последнее время за токен NOT. Много бирж будут делать листинг токена,…
Телеграм недавно запустил возможность стейкать (замораживать) USDT и получать за это их валюту TON. Очень…
Биржа криптовалют Binance проводит сейчас промо-акцию: новым пользователям дают ваучеры в сумме 110 долларов. Деньги…
Самый главный момент в работе с youtube - это получить ключ api через консоль разработчика…
Арендую сервер для небольшого проекта на python. И вот приходит мне уведомление, что за сутки…
Тестирую одну схему, и нужно на много видео наложить watermark. Решил делать через Python 3,…
View Comments
Могли бы вы мне помочь? Имеется кучка картинок формата png. Хочу их спрятать в архив и в случае необходимости чтобы программа брала картинки из архива, причем планирую запароленый архив.
Как именно обратиться к определенной картинке при этом?
Если правильно понял, прочесть/открыть файл, задав пароль.
ZipFile.read("name_file.png", pwd="yourPassword")
А всё, можете не отвечать, я посёрфил по форумникам и нашёл, как это делается.
если не тяжело - какое решение использовали? :)
А как добавить целую директорию? Когда я указываю просто путь к папке, в которой фалы, оно копирует мне в архив только саму папку, но не файлы в ней.
я наверное начал бы с for file in os.listdir(path2dir)