Python无法处理zipfile.BadZipFile中的异常

Pel*_*e G 1 python exception-handling zipfile python-2.7

如果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
Run Code Online (Sandbox Code Playgroud)

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

Jim*_*ard 7

你需要把你的情况管理器try-except块:

try:
    with ZipFile(path) as zf:
        print "zipfile is OK"
except BadZipfile:
    print "Does not work "
Run Code Online (Sandbox Code Playgroud)

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