Python 遇到非Zip文件时出错
我想从整个文件夹中获取Zip文件的注释数据,但当它遇到Zip文件以外的任何其他文件时,它会给我一个错误: 回溯(最近一次调用):文件“C:\Users\user\Desktop\New 文件夹\ec5.py”,第11行,在 将ZipFile(zfile,'r')作为testzip:File“C:\Users\user\AppData\Local\Programs\Python37-32\lib\ZipFile.py”, 第1200行,在init self.\u RealGetContents()文件“C:\Users\user\AppData\Local\Programs\Python\Python37-32\lib\zipfile.py”, 第1267行,in_RealGetContents raise BadZipFile(“文件不是zip文件”)zipfile.BadZipFile:文件不是zip文件 是否可以使用以下内容来修复它:Python 遇到非Zip文件时出错,python,zip,Python,Zip,我想从整个文件夹中获取Zip文件的注释数据,但当它遇到Zip文件以外的任何其他文件时,它会给我一个错误: 回溯(最近一次调用):文件“C:\Users\user\Desktop\New 文件夹\ec5.py”,第11行,在 将ZipFile(zfile,'r')作为testzip:File“C:\Users\user\AppData\Local\Programs\Python37-32\lib\ZipFile.py”, 第1200行,在init self.\u RealGetContents()
try:
exception
代码如下:
import os
import unicodedata
from zipfile import ZipFile
rootFolder = u"C:/Users/user/Desktop/archives/"
zipfiles = [os.path.join(rootFolder, f) for f in os.listdir(rootFolder)]
for zfile in zipfiles:
print("Opening: {}".format(zfile))
with ZipFile(zfile, 'r') as testzip:
print(testzip.comment) # comment for entire zip
l = testzip.infolist() #list all files in archive
for finfo in l:
# per file/directory comments
print("{}:{}".format(finfo.filename, finfo.comment))
试试这个
for zfile in zipfiles:
print("Opening: {}".format(zfile))
try:
with ZipFile(zfile, 'r') as testzip:
print(testzip.comment) # comment for entire zip
l = testzip.infolist() #list all files in archive
for finfo in l:
# per file/directory comments
print("{}:{}".format(finfo.filename, finfo.comment))
except BadZipFile:
print("Bad file:", zfile)
您可能需要从zipfile导入BadZipFile异常
您也可以使用catch all exception,但我不鼓励使用它,因为它可能会隐藏其他错误:
except Exception as e:
print(e)
如何导入异常?实现您的修复基本上是通过整个文件夹读取每个文件名,而不列出zip文件注释,我认为您导入例外是正确的,因此在完成整个文件夹后会出现此错误(这只是错误的最后一行,没有足够的空间):NameError:name'BadZipFile'未定义。我正确处理了错误,但它仍然只列出了名称,而没有zipfile的注释,可能是缩进?是缩进^^^谢谢