Search code examples
pythonzipflaskwerkzeug

Using Python, getting the name of files in a zip archive


I have several very large zip files available to download on a website. I am using Flask microframework (based on Werkzeug) which uses Python.

Is there a way to show the contents of a zip file (i.e. file and folder names) - to someone on a webpage - without actually downloading it? As in doing the working out server side.

Assume that I do not know what are in the zip archives myself.

I apoligize that this post does not include code.

Thank you for helping.


Solution

  • Sure, have a look at zipfile.ZipFile.namelist(). Usage is pretty simple, as you'd expect: you just create a ZipFile object for the file you want, and then namelist() gives you a list of the paths of files stored in the archive.

    with ZipFile('foo.zip', 'r') as f:
        names = f.namelist()
    print names
    # ['file1', 'folder1/file2', ...]