«Нет такого файла или каталога» в Python

голоса
-1

Я пытаюсь создать программу шифрования, которая также может использовать имя пользователя и пароль, чтобы получить доступ, наряду с паролем будучи в состоянии изменить, однако, я получаю следующее сообщение об ошибке при попытке прочитать пароль из файла.

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'

Пароль сохраняется в Users\Matthew\AppData\Local\Programs\Python\Python37-32\password.txt directory.

Ниже приведен код.

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()

Любая помощь приветствуется, спасибо!

Задан 19/09/2018 в 13:21
источник пользователем
На других языках...                            


1 ответов

голоса
0

Обеспечить полный путь:

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

Редактировать:

Как говорится в комментариях , что он работал , но пароль был отмечен как ошибочные, так что я исправил проблемы с вашим кодом.
Вы не можете прочитать данные непосредственно при открытии файла. Вы должны будете использовать команду , readчтобы получить данные:

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

Ваша вторая проблема кода установки нового пароля. Код, который вы сделали:

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

Не следует использовать , inputчтобы увидеть значение, используйте переменную , в которой Вы сохранили входные данные. Кроме того, lowerстрока , чтобы сделать его легко:

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

Полный код может быть как:

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()
Ответил 19/09/2018 в 13:23
источник пользователем

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