Reputation: 1074
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?
Upvotes: 30
Views: 26478
Reputation:
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
Upvotes: 18