如果zip文件已损坏,则需要处理,因此它只需传递此文件即可继续下一个。

在Im试图捕获异常的下面的代码示例中,我可以通过它。但是,当zip文件损坏时,我的脚本失败了,并给了我“正常”的追溯错误*,而不是打印了“我的错误”,但是如果zip文件正常,则运行正常。

这是我正在处理的代码的一个简约示例。

path = "path to zipfile"

from zipfile import ZipFile

with ZipFile(path) as zf:
    try:
        print "zipfile is OK"
    except BadZipfile:
        print "Does not work "
        pass


追溯的一部分告诉我:引发BadZipfile,“文件不是zip文件”

最佳答案

您需要将上下文管理器放在try-except块中:

try:
    with ZipFile(path) as zf:
        print "zipfile is OK"
except BadZipfile:
    print "Does not work "


错误由ZipFile引发,因此将其放置在外部意味着找不到针对所引发异常的处理程序。另外,请确保从BadZipFile适当导入zipfile

关于python - Python无法处理zipfile.BadZipFile中的异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39154470/

10-12 12:38