繁体   English   中英

从文本文件中读取特定行,然后检查它是否等于字符串变量?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM