在Python中打开锁定的zip文件时的AttributeError

时间:2018-02-28 15:33:33

标签: python zipfile

我正在尝试使用函数检查zip文件的密码是否正确:

import zipfile

def isCorrectPassword(zip_file, password):
    try:
        zip_file.extractall(pwd=bytes(password,'utf-8'))
        print("Success")
        return True
    except:
        print("Fail")
        return False

但是,当我运行它时,它返回False。我知道密码是正确的。

我试过用这个重新运行这个脚本:

zip_file.extractall(pwd=bytes(password,'utf-8'))

包括所有必要的变量,但它仍然不起作用 - 它会产生这个错误:

  

AttributeError:'str'对象没有属性'extractall'

我做错了什么?

1 个答案:

答案 0 :(得分:2)

您的zip_file变量是一个字符串,因此无法在其上调用extract_all。试试这个:

def isCorrectPassword(zip_file, password):
    try:
        with zipfile.ZipFile(zip_file) as file:
            file.extractall(pwd=bytes(password,'utf-8'))
        print("Success")
        return True
    except:
        print("Fail")
        return False