Обзор
В некоторых ситуациях необходимо выборочное удаление файлов из архива. Удаление может осуществляться по маске или любому другому критерию.Aspose.ZIP поддерживает выборочное удаление из нескольких форматов.
Python удалить файл из ZIP-архива
Метод delete_entry используется для удаления всей записи из ZIP-архива. Эта операция независима и не требует переобработки всего архива.
Записи ZIP-архива можно удалить с помощью пары методов
DeleteEntry
. Удаление записи происходит без переупаковки, поэтому другие записи остаются неизменными без распаковки и повторного сжатия.
with zp.Archive("archive.zip") as archive:
while len(archive.entries) > 1:
archive.delete_entry(archive.entries[0])
archive.save("last_entry.zip")
Этот код обрабатывает существующий ZIP-архив «archive.zip». Он последовательно удаляет все записи, кроме последней, фактически создавая новый архив с именем «last_entry.zip», содержащий только оставшийся файл.
Удалить файл из TAR
Метод delete_entry также эффективен для удаления записей из архива TAR. Этот процесс работает независимо, что исключает необходимость повторной обработки всего архива. Используя метод delete_entry для файлов TAR, как показано в примере ниже, записи можно легко удалить, гарантируя, что оставшиеся записи не будут затронуты и не подвергнутся распаковке или повторному сжатию.
with zp.tar.TarArchive("two_files.tar") as archive:
archive.delete_entry(0)
archive.save("single_file.tar")
Если вы хотите удалить записи из сжатого tar (*.tar.gz), необходимо распаковать его в обычный *.tar.
CPIO Удалить файл из архива
Записи можно удалять из CPIO, аналогично TAR.
with zp.cpio.CpioArchive("two_files.cpio") as archive:
archive.delete_entry(archive.entries[0]).save("single_file.cpio")
Помните, что метод delete_entry возвращает экземпляр архива. В некоторых случаях это поможет вам сделать ваш код более компактным.
Удалить из файлов XAR
В архиве Xar также есть метод удаления одной записи delete_entry.
В этом примере удаляются все записи, кроме последней.
with zp.xar.XarArchive("archive.xar") as archive:
while len(archive.entries) > 1:
archive.delete_entry(0)
archive.save("last.xar")
В этом примере демонстрируется изолированная обработка, то есть она изменяет архив, не затрагивая сжатое состояние остальных записей. Код итеративно удаляет записи из «archive.xar», пока не останется только одна. Наконец, полученный архив сохраняется как «last.xar».
Другие поддерживаемые функции API Aspose.ZIP для Python.Net
С помощью библиотеки Aspose.ZIP в Python.Net вы можете легко решать различные задачи, связанные с документами в формате ZIP. Если вам нужно конвертировать форматы, объединять файлы, редактировать содержимое или извлекать данные, Aspose.ZIP предоставляет комплексные функциональные возможности для оптимизации вашего рабочего процесса и повышения производительности.
Support and Learning Resources
- Образовательные ресурсы
- Документация
- Исходный код
- Ссылки на API
- Поддержка продукта
- Бесплатная поддержка
- Платная поддержка
- Блог
- Примечания к выпуску
- Почему Aspose.Zip для Python.Net?
- Список клиентов
- Истории успеха