import os
from time import sleep
import maskpass
password_check = False
re_enter_pass = True
while password_check == False:
while re_enter_pass == True:
user_name = str(input("Hello person, what would you like your username to be? \n"))
password = maskpass.askpass(mask="")
if len(user_name) and len(password) != 0:
f = open("User_Data.txt","a")
if len(password) < 8:
print("Please enter a password with 8 minimum letters.\n")
else:
f.write(f"{user_name}; {password}\n")
print("Password stored.")
sleep(2)
os.system('cls')
sleep(2)
re_enter = input("Would you like to enter a new password? (Y/N)\n")
if re_enter == "Y":
re_enter_pass = True
os.system('cls')
elif re_enter == "N":
re_enter_pass = False
password_check = True
break
为什么文本文件中的用户名和密码变量没有更新?
它以前可以工作,但我觉得我搞砸了 while 循环。我期望它使用这种格式“{用户名};{密码}”在文本文件中附加用户名和密码。
尝试这样
import os
from time import sleep
import maskpass
password_check = False
re_enter_pass = True
# Open the file once before the loop starts
with open("User_Data.txt", "a") as f:
pass
while not password_check:
while re_enter_pass:
user_name = str(input("Hello person, what would you like your username to be? \n"))
password = maskpass.askpass(mask="")
if len(user_name) > 0 and len(password) >= 8:
with open("User_Data.txt", "a") as f:
f.write(f"{user_name}; {password}\n")
print("Password stored.")
sleep(2)
os.system('cls')
sleep(2)
re_enter = input("Would you like to enter a new password? (Y/N)\n")
if re_enter == "Y":
os.system('cls')
elif re_enter == "N":
re_enter_pass = False
password_check = True
break
else:
print("Please enter a valid username and password.\n")
# Rest of your code...