检查单独的文本文件是否已经存在用户名(Python 注册程序)



我编写了一个 python 文件,允许您注册(名称、密码、电子邮箱(带有带有代码的确认电子邮箱((,注册后您的数据被保存在一个单独的文本文件中,现在我希望 python 在您输入用户名时检查用户名是否已存在。

有这个名称.txt文件,它只是1行:用户名2行:密码3行:电子邮件地址当您在此处注册新的输入代码时,它将在 txt 文件中的第一个帐户下方显示相同的代码。但是我希望python现在在您注册期间检查此文本文件是否可以使用此用户名,因为它到目前为止尚未使用,或者用户名是否已经存在并且您必须使用另一个用户名。

import smtplib
import random
random.seed()
registrated=False
print("")
print("Namen Kriterien:")
print("-Mindestens 1 Buchstabe")
print("-Mindestens 4 Zeichen lang, maximal 20!")
print("-'Thats it!'")
print("")
fehler=1
while fehler==1:
    try:
        print("")
        name=input("Geben Sie Ihren Nutzernamen ein (4-20 Zeichen): ")
        if len(name) > 20 or len(name) < 4:
            print("Dein Name entspricht nicht den Kriterien!")
        else:
            print("")
            print("Dein Name ist:",name)
            print("")
            fehler2=1
            while fehler2==1:
                try:
                    q1=input("Ist das richtig? (YES | NO): ")
                    q1.upper()
                    if q1=="YES":
                        print("")
                        fehler2=0
                        fehler=0
                    elif q1=="NO":
                        print("")
                        fehler2=0

                    else:
                        print("")
                        print("ERROR")
                        print("")
                        fehler2=1
                except:
                    print("")
                    print("ERROR")
                    print("")
                    fehler2=1
    except:
        print("Versuche es nochmal!")
        fehler=1
print("Herzlichen Glückwunsch, dein Name ist",name)
fehler1=1
while fehler1==1:
    try:
        print("")
        pw=input("Bitte gib dein Passwort ein (selbe Kriterien wie der Name): ")
        if len(pw) > 20 or len(name) < 4:
            print("Das Passwort entsprcht nicht den Kriterien!")
        else:
            pw1=input("Bitte bestätige dein Passwort: ")
            if pw1==pw:
                fehler1=0
            else:
                print("")
                print("DEIN PASSWORT WAR FALSCH, BITTE WIEDERHOLEN!")
                print("")
                fehler1=1
    except:
        print("Versuche es nochmal!")
        fehler1=1
#Mail
import smtplib
import random
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
random.seed()
while 1:
    print("")
    email=input("Please enter your email adress: ")
    email1=input("Please confirm your email adress: ")
    if email == email1:
        break
    else:
        print("Something went wrongt, try again!")
email_user='register.confirmation.mnstudio@gmail.com'
email_pw='mnstudiophytonnht1102'
code=random.randint(10000,99999)
body='Hi there, thanks for using mnstudio programs, your code is: '+str(code)
subject='Registration to Mnstudio!'
msg = MIMEMultipart()
msg['From'] = email_user
msg['To'] = email
msg['subject'] = subject
msg.attach(MIMEText(body,'plain'))
text = msg.as_string()

server= smtplib.SMTP('smtp.gmail.com',587)
server.starttls()
server.login(email_user,email_pw)
fh=1
fhh=1
while fh==1:
    try:
        server.sendmail(email_user,email,text)
        print("")
        print("DONE EMAIL SENT")
        print("")
        print("We sent you an email with the confirmation code, please check spam as well if you cant find it!")
        print("")
        fh=0
    except:
        fhh=1
        print("")
        print("SOMETHING WENT WRONG WE'LL TRY AGAIN")
        print("")
        while fhh==1:
            try:
                print(email)
                q=input("Is the email correct? (YES | NO): ")
                print("")
                q.upper()
                if q=="YES":
                    fhh=0
                    fh=1
                elif q=="NO":
                    fhh=1
                    email=input("Please enter your email again: ")
                    email1=input("Please confirm email: ")
                    if email==email1:
                        print("")
                        print("Thanks we'll try to send an email to,",email)
                        print("")
                        fhh=0
                        fh=1
                    else:
                        print("ERROR TRY AGAIN")
                        fhh=1
                        fh=1
                else:
                    fhh=1
                    print("ANSWER WITH (YES | NO)")
            except:
                print("ANSWER WITH (YES | NO)")
        fh=1
server.quit()

while True:
    codeconfirm=int(input("Bitte geben Sie den Code ein: "))
    print("")
    if codeconfirm==code:
        registrated=True
        print("CODE CORRECT")
        print("")
        break
    else:
        print("Code war falsch bitte noch einmal eingeben !")

#
if registrated:
    dateihandler = open('names.txt', mode='a')
    dateihandler.write("n"+str(name))
    dateihandler.write("n"+str(pw))
    dateihandler.write("n"+str(email))
    dateihandler.write("n") 
print("Danke du bist jetzt registriert! ")
input("")

如果您加载文件并在一个简单的列表中加载用户名,您可以使用简单的is ... in ...检查列表中是否存在新用户名,但不是很干净的解决方案,但是如果您正在做一些练习或类似的事情是一个很好的第一步,但我再说一遍,我认为您对我想象中的问题的解决方案在真实场景中并不好。

最新更新