将 python 中的字符串添加到文本文件,然后在 while 循环中验证行
Adding strings from python to text file and then verify lines in while loop
我是编码新手,仍在学习 Python。
我有一个任务,我必须将 Python 中的行上传到文本文件,然后稍后在代码中验证这些行,例如我必须输入用户名和用户密码,然后将 [user_name、user_pass] 添加到文本文件中。
我的问题是,当我尝试验证线路时,发生了两件事之一。在我为该行添加拆分功能后,例如verified_user, verified_password = line.split(", ") 它 运行s 变成了一个错误,指出我没有足够的值来满足请求,例如 2 expected, 1 made .如果我更改拆分输入并且它确实 运行,验证循环表明我的输入与字符串中的任何行都不匹配。
如果我只将信息添加到文本文件,一切都会起作用。但是当我通过 Python 中的附录操作添加时,它不再有效。
这是我目前所拥有的:
user_list = []
all_names_entered = "no"
while all_names_entered == "no":
user_name = input("Enter user name: ")
user_pass = input("Enter password: ")
user_list.append(user_name + ", " + user_pass)
while True:
all_names_entered = input("All users entered?: ")
if all_names_entered in ['yes','no']:
break
else:
print( 'please answer with yes or no' )
for items in user_list:
with open('user.txt', 'a') as file:
file.write(f"{user_name}, {user_pass}\n")
print (user_list)
file.close()
下一段内容如下:
user_file = open("user.txt", "r+")
login = False
while login == False:
username = input("Enter user name: ")
password = input("Enter user password: ")
for line in user_file:
other = line.strip()
valid_user, valid_password = line.split(", ")
if username == valid_user and password == valid_password:
login = True
print ("You have successfully logged in")
break
else:
print("You have entered incorrect detail. Please try again")
user_file.seek(0)
user_file.close()
- 首先,缩进在Python中很重要。
- 其次,如果用户输入 'no'.
,你应该循环
- 利用在每个
for
循环中初始化的 item
。
- 您初始化了
other
但它从未被使用过。
写入文件的代码如下:
user_list = []
all_names_entered = "no"
while all_names_entered == "no":
user_name = input("Enter user name: ")
user_pass = input("Enter password: ")
user_list.append(user_name + ", " + user_pass)
query_all_names_entered = True
while query_all_names_entered:
all_names_entered = input("All users entered?: ")
if all_names_entered == 'yes':
query_all_names_entered = False
break
elif all_names_entered == 'no':
query_all_names_entered = False
continue
else:
print('Please answer with yes or no')
all_names_entered = "no"
with open('user.txt', 'a') as file:
for item in user_list:
file.write(f"{item}\n")
print (user_list)
file.close()
下面是读取文件登录:
user_file = open("user.txt", "r+")
login = False
lines = user_file.readlines()
while login == False:
username = input("Enter user name: ")
password = input("Enter user password: ")
for line in lines:
valid_user, valid_password = line.strip().split(", ")
if username == valid_user and password == valid_password:
login = True
print ("You have successfully logged in")
break
if login == False: print ("You have entered incorrect detail. Please try again")
user_file.close()
我是编码新手,仍在学习 Python。 我有一个任务,我必须将 Python 中的行上传到文本文件,然后稍后在代码中验证这些行,例如我必须输入用户名和用户密码,然后将 [user_name、user_pass] 添加到文本文件中。 我的问题是,当我尝试验证线路时,发生了两件事之一。在我为该行添加拆分功能后,例如verified_user, verified_password = line.split(", ") 它 运行s 变成了一个错误,指出我没有足够的值来满足请求,例如 2 expected, 1 made .如果我更改拆分输入并且它确实 运行,验证循环表明我的输入与字符串中的任何行都不匹配。
如果我只将信息添加到文本文件,一切都会起作用。但是当我通过 Python 中的附录操作添加时,它不再有效。
这是我目前所拥有的:
user_list = []
all_names_entered = "no"
while all_names_entered == "no":
user_name = input("Enter user name: ")
user_pass = input("Enter password: ")
user_list.append(user_name + ", " + user_pass)
while True:
all_names_entered = input("All users entered?: ")
if all_names_entered in ['yes','no']:
break
else:
print( 'please answer with yes or no' )
for items in user_list:
with open('user.txt', 'a') as file:
file.write(f"{user_name}, {user_pass}\n")
print (user_list)
file.close()
下一段内容如下:
user_file = open("user.txt", "r+")
login = False
while login == False:
username = input("Enter user name: ")
password = input("Enter user password: ")
for line in user_file:
other = line.strip()
valid_user, valid_password = line.split(", ")
if username == valid_user and password == valid_password:
login = True
print ("You have successfully logged in")
break
else:
print("You have entered incorrect detail. Please try again")
user_file.seek(0)
user_file.close()
- 首先,缩进在Python中很重要。
- 其次,如果用户输入 'no'. ,你应该循环
- 利用在每个
for
循环中初始化的item
。 - 您初始化了
other
但它从未被使用过。
写入文件的代码如下:
user_list = []
all_names_entered = "no"
while all_names_entered == "no":
user_name = input("Enter user name: ")
user_pass = input("Enter password: ")
user_list.append(user_name + ", " + user_pass)
query_all_names_entered = True
while query_all_names_entered:
all_names_entered = input("All users entered?: ")
if all_names_entered == 'yes':
query_all_names_entered = False
break
elif all_names_entered == 'no':
query_all_names_entered = False
continue
else:
print('Please answer with yes or no')
all_names_entered = "no"
with open('user.txt', 'a') as file:
for item in user_list:
file.write(f"{item}\n")
print (user_list)
file.close()
下面是读取文件登录:
user_file = open("user.txt", "r+")
login = False
lines = user_file.readlines()
while login == False:
username = input("Enter user name: ")
password = input("Enter user password: ")
for line in lines:
valid_user, valid_password = line.strip().split(", ")
if username == valid_user and password == valid_password:
login = True
print ("You have successfully logged in")
break
if login == False: print ("You have entered incorrect detail. Please try again")
user_file.close()