MichaelvdNet
MichaelvdNet

Reputation: 1074

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

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

Answers (1)

user2665694
user2665694

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

Related Questions