Python脚本检查zip文件是否损坏。

22

如何检查 ZIP 文件是否损坏?我有一个包含 10 张 JPG 图像的 ZIP 文件。我能够提取其中 8 张图片。ZIP 文件中的两张图片已经损坏,我无法提取它们。是否有一种在 Python 脚本中检查这些的方法?

2个回答

32

这段代码将会抛出异常(如果zip文件真的很糟糕或者不是一个zip文件),或者显示zip文件中第一个有问题的文件。

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.")

1
有没有类似的方法来检查Winrar文件? - Gurminder Bharani
我在一个非zip文件上测试了代码,结果收到了错误信息:“zipfile.BadZipFile: File is not a zip file”。 - Admia
这是因为它抛出了一个异常 - 你需要确保像这样的代码被包含在try/except子句中。我更新了答案,以便脚本可以独立运行。 - Dave

11

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接