Passwort aus Datei auslesen und vergleichen
- __blackjack__
- User
- Beiträge: 13100
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@mr-evil1: Das hat das `xbmc`-Modul schon irgendwie verraten – und das ändert nichts daran wie die Programmiersprache Python funktioniert.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Also ist es nicht möglich, Passwörter aus einer passw.csv Datei auszulesen und mit der Tastatureingabe zu vergleichen?
Hab schon vieles versucht. Es funktioniert aber nur immer mit dem ersten Wort in der Datei.
ZB passw.csv:
123;345;678;91011;121314 ;
Ich hätte gerne dass alle diese zu einem Password = True führen
Und alles was nicht in der Liste ist zu eunem Password = False
Ich schaffe es einfach nicht. Habe schon alle Firen danach abgesucht.
Hab schon vieles versucht. Es funktioniert aber nur immer mit dem ersten Wort in der Datei.
ZB passw.csv:
123;345;678;91011;121314 ;
Ich hätte gerne dass alle diese zu einem Password = True führen
Und alles was nicht in der Liste ist zu eunem Password = False
Ich schaffe es einfach nicht. Habe schon alle Firen danach abgesucht.
Beantworte doch erst einmal __blackjacks__ Frage warum sein Code nicht funktioniert.
Man baut ja ein Haus auf einem vernünftigen Fundament.
Und dann dann zeigst du den Code, der nur das erste Passwort akzeptiert.
Solange du hier alles ignorierst, was die helfen soll, wirst du auch nicht voran kommen.
Man baut ja ein Haus auf einem vernünftigen Fundament.
Und dann dann zeigst du den Code, der nur das erste Passwort akzeptiert.
Solange du hier alles ignorierst, was die helfen soll, wirst du auch nicht voran kommen.
NAtürlich ist das möglich. Aber Du hast noch immer nicht gezeigt, was Du bereits versucht hast.
Ein Problem teilt man am besten in kleine Teilprobleme, die einfach zu lösen sind. Hier ist es, das Lesen der Passwortdatei, und das vergleichen mit vielen Passwörtern.
Ein Problem teilt man am besten in kleine Teilprobleme, die einfach zu lösen sind. Hier ist es, das Lesen der Passwortdatei, und das vergleichen mit vielen Passwörtern.
Ok. Hier ein Beispiel von mir, aus der Konsole mit nur 4 Passwörter aus der Datei.
Code: Alles auswählen
import csv
answer = input("Do you have an account?(yes or no) ")
if answer == 'yes' :
login = False
csvfile = open("/storage/emulated/0/passw.csv","r")
reader = csv.reader(csvfile, delimiter=';')
for row in reader:
for heading in ['password: ', '2 more attempts: ', 'last attempt: ']:
password = input(heading)
if row[0] == password:
login = True
break
elif row[1] == password:
login = True
break
elif row[2] == password:
login = True
break
elif row[3] == password:
login = True
break
else:
login = False
if login == True:
print("You are now logged in!")
break
else:
print("3 times incorrect password.")
exit()
else:
print('Only with password.')
exit()
Und was gefällt Dir an dieser Lösung nicht?
Statt viermal den selben Code zum Prüfen des Passworts zu kopieren, würde man eine Schleife verwenden. Die äußerste for-Schleife wird exakt einmal durchlaufen, ist also keine Schleife.
Mir ist immer noch nicht klar, warum Du mehrere Passwörter hast?
Statt viermal den selben Code zum Prüfen des Passworts zu kopieren, würde man eine Schleife verwenden. Die äußerste for-Schleife wird exakt einmal durchlaufen, ist also keine Schleife.
Mir ist immer noch nicht klar, warum Du mehrere Passwörter hast?
Code: Alles auswählen
dinge_die_sich_aufzaehlen_lassen = [
"das",
"steht",
"in",
"jedem",
"tutorial",
"fuer",
"python."
]
for entry in dinge_die_sich_aufzaehlen_lassen:
print(entry)
@__deets__ nichts für ungut. Deine Aussagen kannst du dir auch sparen. Diese bringen wenig.
Solltest du dir meinen 1.Post durchgelesen haben, sind das über 100 welche aufzuzählen wären. Müssen die alle geschrieben werden?
Ich denke Python kann das auch automatisch. Nur nicht in den Grundfunktionen.
Solltest du dir meinen 1.Post durchgelesen haben, sind das über 100 welche aufzuzählen wären. Müssen die alle geschrieben werden?
Ich denke Python kann das auch automatisch. Nur nicht in den Grundfunktionen.
Wie man eine Datei zeilenweise einliest steht ebenfalls in dem Tutorial. Ist alles „Grundfunktionen“. So wie das csv Modul, falls du darauf bestehst die Passwörter in eine Zeile zu schreiben.
Aber mit Einzelsatzfragen so lange quengeln, bis es einem einer vorkaut ist natürlich auch eine top Strategie. Viel Erfolg damit.
Aber mit Einzelsatzfragen so lange quengeln, bis es einem einer vorkaut ist natürlich auch eine top Strategie. Viel Erfolg damit.
@mr-evil1: Doch, Python kann das. Auch in den Grundfunktionen. __deets__ hat dir die Lösung doch auf dem Silbertablet präsentiert.
Wenn du selbst diese Grundlagen nicht verstehst, dann solltest du dir ein Tutorial durchlesen um die Sprache zu lernen. Zum Beispiel das in der offizellen Python Dokumentation.
Wenn du selbst diese Grundlagen nicht verstehst, dann solltest du dir ein Tutorial durchlesen um die Sprache zu lernen. Zum Beispiel das in der offizellen Python Dokumentation.
- __blackjack__
- User
- Beiträge: 13100
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@mr-evil1: Natürlich müssen die alle geschrieben werden. Wie sollen sie sonst in den Computer kommen? Aber das hast Du (oder wer auch immer) bereits getan.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Ok. Danke
Dann bin ich wohl zu unterbelichtet dafür.
Denn ich schaffe es nicht, dass er eine Datei öffnet und jedes "Wort" der Datei automatisch mit meiner "input" Eingabe vergleicht. Es funktioniert nur wenn ich die row [0], row [1], row [2] und so weiter manuell genau deklariere.dann läuft es .
Dann bin ich wohl zu unterbelichtet dafür.
Denn ich schaffe es nicht, dass er eine Datei öffnet und jedes "Wort" der Datei automatisch mit meiner "input" Eingabe vergleicht. Es funktioniert nur wenn ich die row [0], row [1], row [2] und so weiter manuell genau deklariere.dann läuft es .
Als Beispiel:
Code: Alles auswählen
import csv
PASSWORD_FILENAME = "/storage/emulated/0/passw.csv"
def main():
answer = input("Do you have an account?(yes or no) ")
if answer != 'yes':
print('Only with password.')
return
with open(PASSWORD_FILENAME, encoding='utf8') as csvfile:
reader = csv.reader(csvfile, delimiter=';')
passwords = next(reader)
for heading in ['password: ', '2 more attempts: ', 'last attempt: ']:
password = input(heading)
if password in passwords:
break
else:
print("3 times incorrect password.")
return
print("You are now logged in!")
if __name__ == '__main__':
main()
-
- User
- Beiträge: 227
- Registriert: Donnerstag 17. Dezember 2015, 12:17
zwischenfrage am rande, was bringt das passwort, wenn es jeder aus der csv auslesen kann?
empty Sig