Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Python-Kurs (Teil 18): Projekt – Passwort-Manager (3/3) - Daten abrufen
#1
Hallo!

Willkommen zum letzten Teil unseres Passwort-Manager-Projekts! In den letzten Lektionen haben wir die Struktur gebaut und die Speicherfunktion hinzugefügt. Heute vervollständigen wir unser Programm, indem wir die Logik zum Abrufen von Passwörtern implementieren.

Die passwort_abrufen-Funktion

Wir erstellen eine neue Funktion, die nach dem Namen eines Dienstes fragt und dann die dazugehörige Zeile in unserer Datei sucht. Wir werden die Konzepte des Dateihandlings (Teil 11) und der Schleifen (Teil 8) kombinieren.

Code:
def passwort_abrufen():     print("\n--- Passwort abrufen ---")     dienst = input("Für welchen Dienst suchst du das Passwort? ")     # Wir öffnen die Datei im Lese-Modus ('r')     try:         with open("passwoerter.txt", "r") as datei:             for zeile in datei:                 # Wir prüfen, ob der Dienst in der Zeile ist                 if dienst in zeile:                     print("Gefunden:", zeile)                     return # Wir beenden die Funktion, da wir gefunden haben, was wir suchen                         print("Passwort für diesen Dienst nicht gefunden.")     except FileNotFoundError:         print("Datei 'passwoerter.txt' wurde nicht gefunden. Es wurden noch keine Passwörter gespeichert.") # Unser Hauptprogramm, nun mit dem Aufruf der neuen Funktion def hauptfunktion():     print("Willkommen beim Passwort-Manager!")     while True:         aktion = input("\nWas möchtest du tun? (speichern / abrufen / beenden) ")                 if aktion == "speichern":             passwort_speichern()         elif aktion == "abrufen":             passwort_abrufen() # Hier rufen wir die Funktion auf         elif aktion == "beenden":             print("Manager wird beendet.")             break         else:             print("Ungültige Eingabe. Bitte wähle eine der Optionen.") # Die Hauptfunktion ausführen, wenn das Programm startet hauptfunktion()


So funktioniert der neue Code:
  • Wir erstellen eine Funktion passwort_abrufen(), die den Dienst abfragt.
  • Wir öffnen die Datei mit der try/except Logik aus Teil 12, falls die Datei nicht existiert.
  • Eine for-Schleife geht jede Zeile in der Datei durch.
  • Der if-Befehl prüft, ob der Name des gesuchten Dienstes in der jeweiligen Zeile vorkommt. Wenn ja, wird die gesamte Zeile ausgegeben.
  • return beendet die Funktion, sobald ein Ergebnis gefunden wurde.

Das fertige Programm: Zusammenfassung

Um sicherzustellen, dass alles reibungslos funktioniert, hier noch einmal das komplette und funktionsfähige Programm, das die Code-Blöcke aus den letzten drei Lektionen vereint. Du kannst es einfach kopieren und in eine neue Datei einfügen, um dein fertiges Projekt zu starten.

Code:
# CODE AUS TEIL 17: SPEICHERN def passwort_speichern():     print("\n--- Passwort speichern ---")     dienst = input("Für welchen Dienst ist das Passwort? ")     passwort = input("Gib das Passwort ein: ")     with open("passwoerter.txt", "a") as datei:         datei.write(f"{dienst}: {passwort}\n")         print("Passwort erfolgreich gespeichert!") # CODE AUS TEIL 18: ABRUFEN def passwort_abrufen():     print("\n--- Passwort abrufen ---")     dienst = input("Für welchen Dienst suchst du das Passwort? ")     try:         with open("passwoerter.txt", "r") as datei:             for zeile in datei:                 if dienst in zeile:                     print("Gefunden:", zeile)                     return                         print("Passwort für diesen Dienst nicht gefunden.")     except FileNotFoundError:         print("Datei 'passwoerter.txt' wurde nicht gefunden. Es wurden noch keine Passwörter gespeichert.") # CODE AUS TEIL 16: HAUPTPROGRAMM def hauptfunktion():     print("Willkommen beim Passwort-Manager!")     while True:         aktion = input("\nWas möchtest du tun? (speichern / abrufen / beenden) ")                 if aktion == "speichern":             passwort_speichern()         elif aktion == "abrufen":             passwort_abrufen()         elif aktion == "beenden":             print("Manager wird beendet.")             break         else:             print("Ungültige Eingabe. Bitte wähle eine der Optionen.") # Die Hauptfunktion ausführen hauptfunktion()

   

Herzlichen Glückwunsch! Du hast erfolgreich dein erstes größeres Projekt abgeschlossen und alle Bausteine aus dem Kurs miteinander verbunden.

<< Zurück zur Kurs-Übersicht: Was ist Python und warum du es lernen solltest
Mit freundlichen Grüßen
Dirk Löbe aka Computerdirk
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Python-Kurs (Teil 17): Projekt – Passwort-Manager (2/3) – Speichern von Daten computerdirk 0 873 21.08.2025, 13:48
Letzter Beitrag: computerdirk
  Python-Kurs (Teil 16): Projekt – Passwort-Manager (1/3) computerdirk 0 932 21.08.2025, 13:39
Letzter Beitrag: computerdirk
  Python-Kurs (Teil 15): Polymorphie – gleiche Methode, verschiedene Objekte computerdirk 1 1.152 21.08.2025, 12:09
Letzter Beitrag: computerdirk
  Python-Kurs (Teil 14): Vererbung – Code wiederverwenden mit Klassen computerdirk 0 875 21.08.2025, 11:11
Letzter Beitrag: computerdirk
  Python-Kurs (Teil 13): Objektorientierte Programmierung (OOP) computerdirk 0 916 21.08.2025, 10:37
Letzter Beitrag: computerdirk
  Python-Kurs (Teil 12): Fehler abfangen – so stürzt dein Programm nicht ab computerdirk 0 928 21.08.2025, 09:55
Letzter Beitrag: computerdirk
  Python-Kurs (Teil 11): Dateien lesen & schreiben computerdirk 0 891 21.08.2025, 09:40
Letzter Beitrag: computerdirk
  Python-Kurs (Teil 10): Module & Bibliotheken – Code von anderen nutzen computerdirk 2 1.385 21.08.2025, 09:14
Letzter Beitrag: computerdirk
  Python-Kurs (Teil 9): Funktionen – wiederverwendbarer Code computerdirk 0 906 21.08.2025, 08:42
Letzter Beitrag: computerdirk
  Python-Kurs (Teil 8): Schleifen – Wiederholungen mit for & while computerdirk 0 913 21.08.2025, 08:27
Letzter Beitrag: computerdirk

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste