Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 454
MichaelvdNet Avatar asked Dec 17 '12 15:12

MichaelvdNet


People also ask

How do I delete one file from a zip file?

Select entries in the main WinZip window, right click on any selected file, and click Delete from the shortcut menu. WinZip will display one of two confirmation windows, depending on which view you are using. Default view: WinZip will ask for confirmation that you want to delete the selected files/folders.

Can you delete items from a zip file?

To delete the compressed version, right-click the zipped folder > Choose [Delete].

How do you delete files from archive?

In the Archive Delete window, expand the directory tree by clicking the plus sign (+) or folder icon next to the object you want to expand. Objects on the tree are grouped by archive package description. Select the archived objects that you want to delete. Click Delete.


1 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

like image 167
Andreas Jung Avatar answered Oct 11 '22 10:10

Andreas Jung