【发布时间】:2016-08-25 20:46:36
【问题描述】:
如果一个zip文件损坏需要处理,所以它只是传递这个文件并可以继续下一个。
在下面的代码示例中,我试图捕获异常,所以我可以通过它。但是当 zipfile 损坏时我的脚本失败*,并给我“正常”回溯错误*而不是打印“我的错误”,但如果 zipfile 正常,则运行正常。
这是我正在处理的代码的简约示例。
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"
【问题讨论】:
-
你忘记
from zipfile import BadZipfile了吗? -
try-except 仅捕获
try内发生的错误。为什么这段代码会输入try? -
您的
try块可能应该围绕with块而不是您拥有它的方式。 -
Vsminkov;不,我忘记了。但它没有改变任何东西:从 zipfile 导入 ZipFile 从 zipfile 导入 BadZipfile with ZipFile(path) as zf: try: print "zipfile is OK" except BadZipfile as fail: print "Does not work", 失败通过
-
@FamousJameous 和 @Vminskov 现在成功了:
from zipfile import ZipFile from zipfile import BadZipfile try: with ZipFile(path) as zf: print "zipfile is OK" except BadZipfile as fail: print "Does not work ", fail pass
标签: python python-2.7 exception-handling zipfile