我的代码看起来像这个
def registers():
print("n-------------Register-------------")
new_acc = open("register_file.txt", "a")
new_acc_read = open("register_file.txt", "r")
new_uname = input("Enter new username: ")
username = []
for line in new_acc_read:
user = line.split()
username.append(user[0])
print(username)
if new_uname in username:
print("Username already exists.")
new_uname = input("Enter new username: ")
new_acc.write(new_uname)
new_pass = input("Enter new password: ")
if len(new_pass) < 8:
print("Make sure password is at least 8 characters")
new_pass = input("Enter new password: ")
elif re.search("[0-9]", new_pass) is None:
print("Make sure password has a number in it")
new_pass = input("Enter new password: ")
elif re.search("[a-z, A-Z]", new_pass) is None:
print("Make sure password has letter in it")
new_pass = input("Enter new password: ")
print("Register successful! Proceed to login.")
new_acc.write(new_uname + " " + new_pass)
new_acc.write("n")
我尝试这样做是为了防止相同用户名的重复,但每次我重新运行或登录到不存在的帐户并返回注册页面时,我都可以使用相同的用户名,在我的文本文件中,它被证明是重复的
wewewewe wewe12345
wewewewewewe wewewe12345
wewewewe wewe12345
这是输出
-------------Register-------------
Enter new username: wewe
['wewewewe']
['wewewewe', 'wewewewewewe']
['wewewewe', 'wewewewewewe', 'wewewewe']
Enter new password: wewe12345
您可以参考我制作的这个简单程序:
def register():
x=input("Enter username: ")
y=input("Enter password: ")
found=False
with open('login.txt','r+') as file:
file1=file.readlines()
for line in file1:
a,b=line.strip('n').split()
if a==x:
found=True
break
if found:
print("Username already exist.")
register()
else:
file.write(x+' '+y+'n')
register()
让我们运行这个程序。
执行之前,文本文件为空执行文件后:
Enter username: a
Enter password: b
文本文件现在:
a b
样本执行编号2:
Enter username: a
Enter password: b
Username already exist.
Enter username: c
Enter password: d
文本文件现在:
a b
c d