Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 比较文件中的变量_Python - Fatal编程技术网

Python 比较文件中的变量

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

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


写入和读取的文件具有不同的名称(
users1
users
)。从文件中读取的每一行都有一个行尾字符(
\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()

上签出python文档您似乎没有编写和读取相同的文件,而且您正在将
user
y[1]
进行比较,这是第二个值(密码)。您的问题是使用
file.readline()。使用:
searchline=file.readline().rstrip()
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()