Python 遇到非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()

我想从整个文件夹中获取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文件

是否可以使用以下内容来修复它:

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的注释,可能是缩进?是缩进^^^谢谢