Python Странная проблема с использованием файла в папке - PullRequest
0 голосов
/ 12 марта 2020

У меня есть простой скрипт входа, который я делаю для образования.

def login():
    user = input("Username: ")
    paw = getpass.getpass(prompt="Password: ")
    f = open(r'usera.txt', "r")
    for line in f.readlines():
        us, pw = line.strip().split("|", 1)
        if (user in us) and (paw in pw):
            print("Login Successful")
            return True

def menu():
    print("Alex it worked")


def main():
    log = login()
    if log == True:
         menu()

Не работает, он говорит, что usera.txt не существует в пути к папке, хотя у меня есть мои main.py и usera.txt в одной папке, но мой код работает так, почему ?

def login():
    user = input("Username: ")
    paw = getpass.getpass(prompt="Password: ")
    f = open(r'C:\Users\alex\pycharm\sandboxes\sandboxes\usera.txt', "r")
    for line in f.readlines():
        us, pw = line.strip().split("|", 1)
        if (user in us) and (paw in pw):
            print("Login Successful")
            return True


def menu():
    print("Alex it worked")


def main():
    log = login()
    if log == True:
         menu()

Структура папок

  • песочницы / sandboxes.py
  • песочницы / usera.txt

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

def login():
        user = input("Username: ")
        paw = getpass.getpass(prompt="Password: ")
        f = open(r'usera.txt', "r")
        for line in f.readlines():
            us, pw = line.strip().split("|", 1)
            if (user in us) and (paw in pw):
                print("Login Successful")
                return True

    def menu():
        print("Alex it worked")


    def main():
        log = login()
        if log == True:
             menu()

РЕДАКТИРОВАТЬ: Извините, я нуб, мне нужно лучшая обработка ошибок, а также создание оператора else для неправильного входа в систему. Каков наилучший способ вернуться к началу функции входа в систему?

...