2015-06-03 3 views
0

Мне говорили в прошлом, что просто нет простого способа написать строку zip-файла. Это нормально читать из zip-архива, но если вы хотите писать в zip-файл, лучшим вариантом является извлечение его, внесение изменений и последующее обновление его обратно. Тем не менее, библиотека, которую я использую (openpyxl), выполняет умение писать в zip-файл без какого-либо извлечения. Этот пакет использует функцию writestr() в библиотеке ZipFile python для внесения изменений. Может кто-нибудь объяснить мне, как именно это возможно? Я знаю, что это связано с написанием байтов, но я не могу объяснить хорошее объяснение.Запись данных в zip-архив в Python

Я знаю о неопределенности этого вопроса, но это обстоятельство моего недостатка знаний по этой теме.

+0

вы можете захотеть взглянуть на модуль python «tar» –

+0

@ DamiánMontenegro OP не запрашивал lib, он спросил, как его библиотека, возможно, это делает. –

ответ

1

openpyxl не изменяет файлы на месте, потому что вы не можете сделать это с помощью zipfiles. Вы должны извлекать, изменять и архивировать. Мы просто скрываем этот процесс в библиотеке.

+0

Как, точно? Я проливал исходный код, так как я пытаюсь адаптировать процесс к файлам .docx и, в конечном итоге, ко всем приложениям Microsoft Office. Я просто не могу найти модуль/функцию, которая «выполняет работу». –

+0

Посмотрите на 'reader/excel.py'' writer.excel.py'. –