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

2024-10-02 00:37:54 发布

您现在位置: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("")

Tags: nonameimportinputifemailelseyes
1条回答
网友
1楼 · 发布于 2024-10-02 00:37:54

如果你加载文件并在一个简单的列表中加载用户名,你可以用simple is ... in ...检查新用户名是否存在于列表中,但这不是一个非常干净的解决方案,但是如果你正在做一些练习或类似的事情,这是一个很好的第一步,但是我重复一遍,我认为你对我想象中你所遇到的问题的解决方案并不好一个真实的场景。你知道吗

相关问题 更多 >

    热门问题