Python zipfile extractall暂停脚本(树莓蟒蛇3)

Python zipfile extractall暂停脚本(树莓蟒蛇3),python,zipfile,Python,Zipfile,我有一本有10个单词的字典(其中一个是正确的密码) Python 3上的脚本(在Raspberry上)在字典上迭代 当找到正确的密码时,会暂停/停止(提取zip文件),但会恢复脚本,不会退出,也不会打印“password is…” 您正在尝试将字符串对象与无效操作的字节对象连接起来 这会产生一个异常,您的代码会将其挤压并继续。我发现在找到密码时我没有停止进程,因此现在添加了该异常,并在找到密码时显示密码 谢谢 ' #!/usr/bin/env蟒蛇3 import zipfile import s

我有一本有10个单词的字典(其中一个是正确的密码)

Python 3上的脚本(在Raspberry上)在字典上迭代

当找到正确的密码时,会暂停/停止(提取zip文件),但会恢复脚本,不会退出,也不会打印“password is…”


您正在尝试将字符串对象与无效操作的字节对象连接起来


这会产生一个异常,您的代码会将其挤压并继续。

我发现在找到密码时我没有停止进程,因此现在添加了该异常,并在找到密码时显示密码

谢谢

' #!/usr/bin/env蟒蛇3

import zipfile
import sys

def crackzip(el_zip, clave):
    try:
        el_zip.extractall(pwd = clave.enconde('uft-8'))
        print("password found: " + clave)
        revisor = 1
        return revisor
    except:
        revisor = 0
        return revisor


file_zip = 'file_to_crack.zip'
dictionary = 'dictionary.txt'
zippy = zipfile.ZipFile(file_zip)
revisor = 0
with open(dictionary, 'r') as f:
    for line in f.readlines():
        password = line.strip('\n')
        print(password)
        revisor = crackzip(zippy, password.encode('utf-8'))
        if revisor == 1:
            quit()

很抱歉像“noob”一样问你,我是。。。但您将“字符串和字节”部分写入代码的哪一部分?“密码发现:”是字符串,clave是字节对象。我将让
crackzip
函数返回true或false,并根据结果进行分支。不必使用
sys.exit
这一大部分注意:问题不是特定于的,因此可能可以删除标记。
import zipfile
import sys

def crackzip(el_zip, clave):
    try:
        el_zip.extractall(pwd = clave.enconde('uft-8'))
        print("password found: " + clave)
        revisor = 1
        return revisor
    except:
        revisor = 0
        return revisor


file_zip = 'file_to_crack.zip'
dictionary = 'dictionary.txt'
zippy = zipfile.ZipFile(file_zip)
revisor = 0
with open(dictionary, 'r') as f:
    for line in f.readlines():
        password = line.strip('\n')
        print(password)
        revisor = crackzip(zippy, password.encode('utf-8'))
        if revisor == 1:
            quit()