Python script to check if a zip file is corrupt

Question:

How do I check if a zip file is corrupt or not? I have a zip file with 10 jpg images. I am able to extract say 8 of the images. Two of the images in the zip are corrupt and I am not able to extract those. Is there a way to check for this in a Python script?

Asked By: Rakesh

||

Answers:

Use the zipfile module testzip function, see http://docs.python.org/library/zipfile.html#zipfile.ZipFile.testzip

Answered By: ismail

This code will either throw an exception (if the zip file is really bad or if it’s not a zip file), or show the first bad file in the zip file.

import sys
import zipfile

if __name__ == "__main__":
    args = sys.argv[1:]

    print("Testing zip file: %s" % args[0])

    try:
        the_zip_file = zipfile.ZipFile(args[0])
        ret = the_zip_file.testzip()
        if ret is not None:
            print("First bad file in zip: %s" % ret)
            sys.exit(1)
    except Exception as ex:
        print("Exception:", ex)
        sys.exit(1)

    print("Zip file is good.")
Answered By: Dave
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.