Skip to main content
 首页 » 编程设计

Python 无法处理来自 zipfile.BadZipFile 的异常

2025年05月04日16zfyouxi

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

在下面的代码示例中,我试图捕获异常,以便传递它。但是当 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 

部分回溯告诉我:raise BadZipfile, "File is not a zip file"

请您参考如下方法:

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

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

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