Отличное начало вашей программы. Пара вещей здесь ... когда вы вручную открываете файлы для модификации, вы должны вручную закрыть файл в конце вашей программы с помощью info.close()
.
Решение о том, как хранить ваши данные в файле, было изменено с момента появления компьютеров. Для простоты и обучения вы можете просто сохранить свои имена пользователей и пароли в файле, разделенном запятыми, .csv
или в файле, разделенном пробелами. Это позволит вам прочитать строку и затем разбить ее на отдельные строки для тестирования.
При записи в файл я считаю, что вы можете добавлять строки с помощью оператора +
. Таким образом, чтобы создать разделенный пробелами файл, вы можете info.write(user_name+“,”+”password”+”\n”)
. Теперь у вас есть запятая для разделения и только один пользователь и пароль, сохраненные в вашем файле на строку.
Возможно, ваш файл уже читает. Чтобы увидеть, читается ли файл, перед оператором if попробуйте print(“Current line is -> “,info.readline())
, поскольку readline прочитает только одну строку.
Если файл не читается, или в этом отпечатке нет содержимого, или вы получаете сообщение об ошибке, это может быть разрешение для вашего файла или его просто необходимо указать в опции a+
изменилось.
Далее ключевое слово in
не проверяет содержимое, как вы и предполагали, хотя это хорошая идея.
in
лучше использовать для итерации каждой строки файла for line in info:
Print(info.readline())
Преимущество этого метода в том, что вы можете разделить имя пользователя и пароль каждой строки на список с разделением. Итак ->
For line in info:
Print(line)
Tokens = line.split(“,”) # if comma separated
If user_name == tokens[0]:
#Matched input username with file content
Теперь, когда вы печатаете токены, у вас будет список через запятую, похожий на [“Username”,”password”]
, а затем вы можете получить доступ к ”Username”
с помощью Tokens[0]
и вы можете получить доступ к ”password”
с помощью Tokens[1]
потому что индексирование списка начинается с 0.