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?
Advertisement
Answer
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.")