How do I delete or replace a file in a zip archive?

Question:

I’m creating a program in Python which downloads a set of files and puts them into an archive with the zipfile module.

I already found out how to append to the archive, but there are cases where the files in the archive already exist and should be overwritten.

Currently, if I append an already existing file to the archive I get a duplicate.

Does anyone know how to delete a file in an archive?

Asked By: MichaelvdNet

||

Answers:

From http://docs.python.org/2/library/zipfile

ZipFile.namelist()
Return a list of archive members by name.

So it is trivial to get hold of the members list before appending to the file and performing a check operation against the list of existing members within the archive.

In addition: removing from a ZIP file is not supported. You need to write a new archive
if needed and copy over existing files and omit the file to be removed.

See also

Delete file from zipfile with the ZipFile Module

Answered By: Andreas Jung
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.