比较文件中的变量

时间:2017-03-29 12:52:56

标签: python

脚本在python中,它用于创建保存用户名和密码的文件,我知道整个脚本中存在缺陷,但我想知道: 执行脚本时,用户名和密码将保存到以“,”分隔的文件中。每一行都是新用户名的开头。当调用登录功能时,搜索列表并与输入的用户名进行比较,找到后为肯定:检查密码,这是我的脚本无法正常工作的地方。 为什么我不能在比较2个变量时得到肯定(对于登录功能中的密码),它们应该是相同的。(注意y,是从用户名和密码文件中读取的行,其中第一个元素是用户名和第二个密码)

def function():

    username=input('enter username')
    password=input('enter password')

    file=open('users1','a')
    file.write(username + ',' + password +'\n')


def login():

    user=input('username')
    passw=input('password')

    file=open('users','r')
    searchline=file.readline()

    for line in file:
        if user in line:
            x=line
            y=x.split(',')
            print(y[1])
            if user == y[1]:
                print('access confirmed')
            else:
                print('pass=', y[1])


function()

login()

1 个答案:

答案 0 :(得分:0)

您写入和读取的文件具有不同的名称(users1users)。从文件中读取的每一行都有一个行尾字符(\n)需要在比较密码之前删除它。

def function():

        username = input('enter username')
        password = input('enter password')

        file = open('users','a')
        file.write(username + ',' + password + '\n')


def login():

        username = input('username')
        password = input('password')

        file = open('users','r')

        for line in file:
            if username in line:
                y = line.rstrip().split(',')
                print(y[1])
                if password == y[1]:
                    print('access confirmed')
                else:
                    print('password =', y[1])


function()

login()

查看rstrip

上的python文档