Ich habe einen Code, wo ich eine E-Mail und ein Passwort in einer Textdatei in einer Liste haben, formatiert wie folgt: ["[email protected]","Password1"],["[email protected]","Password2]
.Python liest nicht korrekt aus einer Textdatei?
Mein Code liest aus der Textdatei und vergleicht sie mit einer Benutzereingabe, um festzustellen, ob sie in der Textdatei vorhanden ist. Aus irgendeinem Grund, wenn ich die erste E-Mail eingeben "[email protected]"
liest es aus der Textdatei, aber nicht "Password1"
, aber es liest "[email protected]"
korrekt sowie "Password2"
korrekt. Ich kann keinen Weg finden, um dies zu umgehen und das zu beheben? Es wird kein Fehler empfangen, daher bin ich mir nicht sicher, wo es falsch läuft. Hier ist mein Code:
def Login():
with open("logindata.txt","r") as file:
for line in file:
line=line.split(",")
logindata.append([line[0],line[1].rstrip()])
print(logindata)
found=False
while found == False:
email=input("Enter email:")
password=input("Enter password:")
with open("logindata.txt","r")as file:
for line in file:
line = line.split(",")
if email in line:
print("Correct email")
if password in line:
print("Correct Password")
found=True
if __name__ == "__main__":
Login()
, wenn der Code ausgeführt wird und Sie versuchen, die Eingänge I am Anfang gab dann nur die zweite E-Mail und Passwort-Kombination funktioniert. Hier ist, was die Textdatei wie text file format
Anfügen aussieht:
username=input("Enter a new email")
password=input("Enter a password")
with open('logindata.txt','a')as file:
line='\n'+ username + ',' + password
file.write(line)
print("user added")
Sie haben vergessen, die zu entfernen Neue Zeile; 'password' ist nicht in der Zeile,' password \ n' ist. –
@MartijnPieters Entschuldigung, dass ich darauf zurückkommen möchte, aber wenn ich eine neue E-Mail an die Textdatei anhängen möchte, muss das \ n am Ende des Passworts sein, um es in die nächste Zeile zu bekommen. Wie würde ich das erreichen? – Tom
Der beste Weg: Verwenden Sie 'csv.writer()', um die Datei zu schreiben. Jedes Mal, wenn Sie die Methode 'writerow()' verwenden, fügt sie den Zeilenumbruch für Sie hinzu. Andernfalls fügen Sie es beim Schreiben manuell hinzu; 'fileobj.write ('{}, {} \ n'.format (Benutzer-ID, Passwort))', zum Beispiel. –