如何比较用户输入的用户名和文件中存储的密码?

时间:2016-04-28 18:50:47

标签: python-2.7 file

我正在尝试建立一个银行,用户将用户输入的用户名和密码存储在一个文件(文本文件)中。现在,当用户登录时,他输入了他的用户名。现在如何比较是否输入了此用户名用户创建帐户时存储的密码与存储密码相同(存储在passw.txt中) 这是我的代码,

store_user=open("user.txt","a")
store_passw=open("passw.txt","a")
print "Type 1 to create a new acc or 2 to log in"
a=input("Your choice: ")
if a==1:

    a=raw_input("Enter your username: ")
    store_user.write(a+'\n')
    store_user.close()

    b=raw_input("Enter pass: ")
    store_passw.write(b+'\n')
    store_passw.close()
elif a==2:
    a=raw_input("Enter username: ")
    '''

    Now how do I comapare the username entered by the user with my file user.txt
    And also it should check the same userame has same associated password with passw.txt

    '''    

我还想知道这种方法是否更容易,或者我将用户名和密码存储在字典中,然后将其附加到文件中。如果我这样做,那么我将如何从中获取用户名和密码? (就像用户输入他的用户名一样,现在我的程序如何转到存储用户名和密码的文件,并检查用户名(密钥)是否与密码(值)匹配。

2 个答案:

答案 0 :(得分:0)

你需要一个结构。例如,您可以使用行号来获取对 - 用户密码。这会带来更多你可以期待的问题。请使用结构,并保持数据的一致性。例如,您可以将它们放入单个文件中 - 读取整个记录 - 名称,密码 - 始终作为单个pice。有一些简单的方法 - 比如逗号分隔值 - python有csv模块 - https://docs.python.org/2/library/csv.html。或者你可以选择更复杂的东西 - JSON,XML - 这里是json的链接:https://docs.python.org/2/library/json.html

答案 1 :(得分:0)

我个人不会存储在2个文件中,但在元素之间使用分隔符,并在该元素的值之间使用其他分隔符

示例“Test1,pass1 \ nTest2,pass2”将是分隔符“\ n”和“,”

对于您的代码,您必须在文件1中找到linecount,然后跳到另一个文件中的那一行来比较密码:

psudocode

open username
linefound = -1
for line,lineid in file
   if line == user
       linefound = lineid
close username
if linefound >= 0
   open password
   for line, lineid in file
        if lineid == linefound
           //compare do rest