"No existe el fichero o directorio" en Python

votos
-1

Estoy tratando de crear un programa de encriptación que también es capaz de utilizar un nombre de usuario y contraseña para acceder, junto con la contraseña pudiendo ser cambiado, sin embargo, yo estoy recibiendo el siguiente error al intentar leer la contraseña de un archivo.

Traceback (most recent call last):
  File C:/Users/Matthew/AppData/Local/Programs/Python/Python37-32/a.py, line 28, in <module>
    password()
  File C:/Users/Matthew/AppData/Local/Programs/Python/Python37-32/a.py, line 9, in password
    var2 = open(Users\Matthew\AppData\Local\Programs\Python\Python37-32\password.txt,r)
FileNotFoundError: [Errno 2] No such file or directory: 'Users\\Matthew\\AppData\\Local\\Programs\\Python\\Python37-32\\password.txt'

Contraseña se guarda en el Users\Matthew\AppData\Local\Programs\Python\Python37-32\password.txt directory.

A continuación se muestra el código.

import os
import time
def password():
    while True:
        username = input (Enter Username: )
        password = input (Enter Password: )

        var1 = admin
        var2 = open(Users\Matthew\AppData\Local\Programs\Python\Python37-32\password.txt,r)
        if username == var1 and password == var2:
            time.sleep(1)
            print (Login successful!)
            answer = input(Do you wish to change your password (Y/N): )
            if input == Y or y:
                var2 = input(Enter new password: )
            elif input == N or n:
                break
            logged()
            break

        else:
            print (Password did not match!)

def logged():
    time.sleep(1)
    print (Welcome to the encryption program.)

password()

def main():
    result = 'Your message is: '
    message = ''
    choice = 'none'

    while choice != '-1':
        choice = input(\nDo you want to encrypt or decrypt the message?\nEnter 1 to Encrypt, 2 to Decrypt, -1 to Exit Program: )

        if choice == '1':
            message = input(\nEnter the message to encrypt: )

            for i in range(0, len(message)):
                result = result + chr(ord(message[i]) - 2)

                print (result + '\n\n')
                result = ''

        elif choice == '2':
            message = input(\nEnter the message to decrypt: )

            for i in range(0, len(message)):
                result = result + chr(ord(message[i]) + 2)

                print (result + '\n\n')
                result = ''

        elif choice != '-1':
            print (You have entered an invalid choice. Please try again.\n\n)

        elif choice == '-1':
            exit()

main()

Cualquier ayuda se agradece, gracias!

Publicado el 19/09/2018 a las 13:21
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
0

Proporcionar la ruta completa:

var2 = open("C:/Users/Matthew/AppData/Local/Programs/Python/Python37-32/password.txt","r")

Editar:

Como usted ha dicho en el comentario de que funcionaba pero la contraseña se ha marcado como incorrecta, por lo que se han fijado los problemas con su código.
No se puede leer los datos directamente mediante la apertura de un archivo. Usted tendrá que utilizar el comando readpara obtener los datos:

file = open("C:/Users/Matthew/AppData/Local/Programs/Python/Python36/password.txt","r")
var2 = file.read()
file.close()

Su segundo problema de código es establecer una nueva contraseña. El código que ha hecho:

answer = input("Do you wish to change your password (Y/N): ")
if input == "Y" or "y":
    var2 = input("Enter new password: ")
elif input == "N" or "n":
    break

No utilizar inputpara ver el valor, utilice la variable en el que se almacenan los datos de entrada. También lowerla cadena para que sea fácil:

answer = input("Do you wish to change your password (Y/N): ")
if answer.lower() == "y":
    var2 = input("Enter new password: ")
elif answer.lower() == "n":
    break

El código completo puede ser como:

import os
import time
def password():
    while True:
        username = input ("Enter Username: ")
        password = input ("Enter Password: ")

        var1 = "admin"
        file = open("C:/Users/Matthew/AppData/Local/Programs/Python/Python36/password.txt","r")
        var2 = file.read()
        file.close()
        if username == var1 and password == var2:
            time.sleep(1)
            print ("Login successful!")
            answer = input("Do you wish to change your password (Y/N): ")
            if answer.lower() == "y":
                var2 = input("Enter new password: ")
            elif answer.lower() == "n":
                break
            logged()
            break

        else:
            print ("Incorrect Information!")

def logged():
    time.sleep(1)
    print ("Welcome to the Encryption program.")

password()

def main():
    result = 'Your message is: '
    message = ''
    choice = 'none'

    while choice != '-1':
        choice = input("\nDo you want to encrypt or decrypt the message?\nEnter 1 to Encrypt, 2 to Decrypt, -1 to Exit Program: ")

        if choice == '1':
            message = input("\nEnter the message to encrypt: ")

            for i in range(0, len(message)):
                result = result + chr(ord(message[i]) - 2)

                print (result + '\n\n')
                result = ''

        elif choice == '2':
            message = input("\nEnter the message to decrypt: ")

            for i in range(0, len(message)):
                result = result + chr(ord(message[i]) + 2)

                print (result + '\n\n')
                result = ''

        elif choice != '-1':
            print ("You have entered an invalid choice. Please try again.\n\n")

        elif choice == '-1':
            exit()

main()
Respondida el 19/09/2018 a las 13:23
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more