Python en mémoire zip bibliothèque
Est-il une bibliothèque Python qui permet la manipulation des archives zip dans la mémoire, sans avoir à utiliser de disque réel des fichiers?
La ZipFile bibliothèque ne vous permet pas de mettre à jour l'archive. Le seul moyen semble être de l'extraire dans un répertoire, apportez vos modifications, et de créer un nouveau zip à partir de ce répertoire. Je veux modifier le contenu des archives zip sans accès disque, parce que je vais les télécharger, faire des changements, et de les télécharger de nouveau, donc je n'ai aucune raison de les stocker.
Quelque chose de similaire à Java ZipInputStream/ZipOutputStream ferait l'affaire, bien que l'interface qui évite l'accès au disque serait bien.
Vous devez vous connecter pour publier un commentaire.
Selon la Python docs:
Ainsi, pour ouvrir le fichier en mémoire, il suffit de créer un fichier objet en forme (peut-être en utilisant BytesIO).
De l'article En Mémoire Zip en Python:
L'exemple Ethier a plusieurs problèmes, dont certains majeurs:
InMemoryZip
attributUne version mise à jour est disponible si vous installez
ruamel.std.zipfile
(dont je suis l'auteur). Aprèsou y compris le code de la classe de ici, vous pouvez le faire:
Vous pouvez écrire le contenu à l'aide de
imz.data
à n'importe quel endroit vous avez besoin.Vous pouvez également utiliser le
with
déclaration, et si vous fournissez un nom de fichier, le contenu du ZIP sera écrit en sortant de ce contexte:en raison du retard d'écriture sur le disque, vous pouvez lire à partir d'un vieux
test.zip
dans ce contexte.PYTHON 3
data
peuvent être soit des octets ou des chaînes de caractères et cela a fonctionné parfaitement sur Ubuntu et Python 3.6