Запись в текстовый файл форматирование - PullRequest
1 голос
/ 06 августа 2020

У меня есть задание сделать простой диспетчер задач / список дел. Этот блок кода - лишь часть программы, которая обрабатывает логин, регистрацию нового имени пользователя и пароля. Когда пользователь регистрирует, что ввод записывается в текстовый файл с именем user.txt.

Всякий раз, когда он записывает в текстовый файл, он пишет так: (['admin', 'adm1n']) вместо этого он должен записывать это так: admin, adm1n

user_file = open("user.txt","r+")
login = False

while login == False:
new = input("Are you a new user? Y/N:\n").lower()

if new == "y":
    print("Please register a new username and password:\n")
    new_user1 = input("Please enter a new username:\n").split()
    new_pass1 = input("Please enter a new password:\n").split()
    new_user2 = input("Please confirm your username:\n").split()
    new_pass2 = input("Please confirm your password:\n").split()
    user_pass1 = new_user1 , new_pass1
    user_pass2 = new_user2 , new_pass2
    if user_pass1 == user_pass2:
        user_file.write(f"{user_pass2},")
        user_file.seek(0)
    break

elif new == "n":
    username = input("Enter your username:\n")
    password = input("Enter your password:\n")
    valid_user = username
    valid_password = password
    
for line in user_file:
    valid_user, valid_password = line.split(", ")
    if username == valid_user and password == valid_password:
        login = True

if login == False:
    print("Incorrect details! Please enter a valid username and password")

Что я делаю не так? Я уверен, что это что-то маленькое. Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 06 августа 2020

Потому что вы создаете там кортеж. Вместо этого вы должны создать строку. Вот исправленная версия вашего кода

    user_pass1 = new_user1 + ',' + new_pass1
    user_pass2 = new_user2 + ',' + new_pass2
    if user_pass1 == user_pass2:
        user_file.write(f"{user_pass2},")
        user_file.seek(0)
    break
0 голосов
/ 09 августа 2020

Спасибо за ваш отзыв.

Мне удалось разобраться. Я добавил к нему индекс для печати строки, и он работал нормально.

    user_pass2 = new_user2 , new_pass2
    if user_pass1 == user_pass2:
        #Writes username and password to text file in format requested.
        user_file.write(f'\n{user_pass2[0]}, {user_pass2[1]}')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...