es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

ArchivoComprimido: Verificar contraseña correcta.

Tengo este código para descomprimir un archivo zip que está encriptado con una contraseña:

import zipfile

def main(pswd):
    file_name = 'somefile.zip'
    with zipfile.ZipFile(file_name) as file:
       return file.extractall(pwd = bytes(pswd, 'utf-8'))
print(main("password"))

Funciona, pero quiero que si le doy a la función una contraseña correcta, la descomprima y devuelva, por ejemplo, “True” o, si la contraseña es incorrecta, que devuelva “False”. ¿Cómo puedo mejorar mi código?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para mejorar el código y devolver Verdadero o Falso basado en la corrección de la contraseña, puedes modificar la función principal de la siguiente manera:

    import zipfile
    
    def main(pswd):
        file_name = 'somefile.zip'
        try:
            with zipfile.ZipFile(file_name) as file:
                file.extractall(pwd=bytes(pswd, 'utf-8'))
            return True
        except Exception as e:
            print(e)
            return False
    
    print(main("password"))
    

    En esta función modificada:

    1. Agregamos un bloque de try-except para capturar cualquier excepción que pueda ocurrir al intentar extraer el archivo zip con la contraseña proporcionada.
    2. Si la contraseña es correcta, el método extractall se ejecutará correctamente y la función devolverá Verdadero.
    3. Si la contraseña es incorrecta, se capturará una excepción y se devolverá Falso.

    Además, agregamos una instrucción de impresión para mostrar el mensaje de excepción y facilitar la depuración en caso de errores.

Comments are closed.