![](/img/trans.png)
[英]Setting a variable (x) equal to a string read from a text file then using x in a conditional if statement
[英]Read a specific line from a text file then check if it's equal to a string variable?
我正在尝试创建一个登录系统。 用户创建他们的帐户并输入他们想要使用的用户名和密码。
用户名存储在新文本文件的第 1 行。
密码存储在文本文件的第 2 行。
现在我打开文件并使其可读
user_file = open("user1.txt", "r")
然后我让用户输入之前创建的用户名。
username_login = input("Enter username ")
现在我想检查提交的用户名是否是存储在第 1 行的用户名
if user_file.readline(1) != username_login:
print("Incorrect username")
else:
password_login = input("Enter Password ")
如果提交的用户名正确,它将匹配第 1 行,因此打印 else 语句。 但相反,我总是收到“用户名不正确”的反馈
假设文件只包含 2 行,您可以做的是提取用户名和密码,然后将它们与输入的数据进行比较。 例子:
with open('user1.txt') as f:
username, password = f.read().splitlines()
# now compare username and password with input data
使用for
循环浏览您的文件:
for line in user_file.readlines():
if line[0] == username:
#do something
正如瑞安所说,这绝对不是现实中应该管理登录的方式,但假设这只是练习python......
首先,请注意 python 索引从 0 开始,所以第一行将被称为第 0 行。我也不相信 readline() 接受一个参数来让它做你想做的事。 相反,一种解决方案可能是将文件内容存储到可以索引的列表中:
lines = user_file.readlines()
username_login = input("Enter username ")
if lines[0].strip('\n') != username_login:
print("Incorrect username")
else:
password_login = input("Enter Password ")
然后要访问密码,您可以执行lines[1]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.