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

Python cant handle exceptions from zipfile.BadZipFile

如果一个zip文件损坏需要处理,所以它只是传递这个文件,可以继续下一个。

在下面的代码示例中我试图捕获异常,所以我可以传递它。 但是当zipfile损坏时我的脚本失败*,并且给我"正常"的追溯错误*而不是打印"我的错误",但是如果zipfile没问题则运行正常。

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

1
2
3
4
5
6
7
8
9
10
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块中:

1
2
3
4
5
try:
    with ZipFile(path) as zf:
        print"zipfile is OK"
except BadZipfile:
    print"Does not work"

错误由ZipFile引发,因此将其置于外部意味着无法找到引发异常的处理程序。 另外,请确保从ZipFile中正确导入BadZipFile