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