根据文本文件中的特定行检查变量Python 3.6.x.

时间:2018-03-18 04:22:40

标签: python python-3.x variables match external

假装我正在制作电子邮件脚本。用户已经创建了用户名和密码,该用户名和密码已存储在文本文件中,以便他们可以随时登录。

用户需要能够登录。我希望python检查用户输入是否与之前相应行上的文本文件中的信息匹配。资本化并不重要。

最初创建的文本文件读取:

johncitizen
johnspassword

我的python脚本应该是这样的:

##Reads text file
guessusername = input('What is your username? ')
guesspassword = input('What is your password? ')
if guessusername.lower() = lines[0] and guesspassword = lines[1]:
    ##Grant access

我不介意大写错误,只要字符串本身匹配

1 个答案:

答案 0 :(得分:0)

首先,您使用纯文本密码存储所做的事情是不明智的。你应该使用散列+腌制,或者甚至更好,选择一个合适的框架来工作,并从中学习如何做。

首先,您的数据存储格式应该更像是:

user_id<tab>username<tab>password
user_id<tab>username<tab>password
user_id<tab>username<tab>password

在这种情况下,您可以像这样读取文件:

username = ... #user input
password = ... #user input

found_user_id = None

with open('pass.txt', 'rt') as f:
  for line in f:
    fields = line.split("\t")  
    if fields[1] == username and fields[2] == password:
      found_user_id = fields[0]
      break

#okay, here if found_user_id is not None, then you have found them
#if it is None, then you did not find them.            

确实,数据库比文本文件更有用,但这就是它的工作原理!