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

23 投票
2 回答
27079 浏览
提问于 2025-04-16 11:05

我该怎么检查一个压缩文件是否损坏呢?我有一个压缩文件里面有10张jpg图片。我可以成功解压出8张图片,但里面有两张图片是坏的,我解压不出来。有没有办法在Python脚本里检查这个呢?

2 个回答

12

使用 zipfile 模块里的 testzip 函数,具体可以参考这个链接:http://docs.python.org/library/zipfile.html#zipfile.ZipFile.testzip

33

这段代码要么会抛出一个错误(如果这个压缩文件真的有问题,或者根本就不是一个压缩文件),要么会显示压缩文件里第一个出错的文件。

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

撰写回答