Seite 1 von 1
Datei wird nicht gelesen
Verfasst: Freitag 6. August 2021, 14:04
von Bio Salami
Hi,
Programmiere gerade ein System welches mit meiner iCloud interagiert, damit ich aber meine Zugangsdaten nicht immer neu ins Skript schreiben muss habe ich versucht das Passwort und den Benutzernamen in einer txt Datei zu speichern. Leider funktioniert es nicht.
Code: Alles auswählen
try:
usn = open('.psw/icusn.txt','r')
psw = open('.psw/icpsw.txt','r')
except FileNotFoundError:
print("Daten nicht gefunden")
print(usn + psw)
Die Zugangsdaten werden in unterschiedlichen Dateien gespeichert. Ich weiß es geht eleganter, ich hätte aber gerne vorher ne Möglichkeit an die Daten zu kommen. (Wer Verbesserungsvorschläge hat, gerne reinschreiben)
Beim Ausführen kommt egal was ich mache oder wie ich den Dateipfad angebe nur die Fehlermeldung angezeigt.
Ps. Ich weiß nicht ob diese Frage in Allgemeine Fragen gehört. Vals nicht wäre es nett die Frage in den Richtigen Bereich zu setzen.
Re: Datei wird nicht gelesen
Verfasst: Freitag 6. August 2021, 14:20
von Sirius3
Deine Fehlerbehandlung ist kaputt. Weil, falls ein Fehler auftritt, usn bzw psw nicht definiert sind. usn und psw sind zudem sehr schlechte Variablennamen, weil sie einen nur rätseln lassen, was die Abkürzungen denn bedeuten sollen.
Dateien öffnet man immer mit dem with-Statement, damit sie auch sauber wieder geschlossen werden.
Datei-Instanzen kann man nicht addieren. Was soll die Summe zweier offenen Dateien auch ergeben?
Wenn Du mit "die Fehlermeldung" Deine print-Ausgabe meinst, dann liegt in Deinem aktuellen Arbeitsverzeichnis kein Verzeichnis mit dem Namen .psw, bzw. in diesem Verzeichnis keine Dateiein icuusn.txt oder icpsw.txt. Diesen Fehler kannst Du dadurch beheben, dass Du solche Dateien anlegst.
Re: Datei wird nicht gelesen
Verfasst: Freitag 6. August 2021, 14:30
von Bio Salami
Danke für deine Antwort @Sirius3,
meinst du dass ich bevor ich etwas in die Variablen schreibe sie erst definieren muss? Also sowas wie usn = ''? Bevor ich die Print Ausgabe geschrieben hatte kam auch eine Fehlermeldung, eben die die die Datei nicht gefunden hat. Ich hatte die Dateien aber schon erstellt und sie haben auch einen Inhalt der gelesen werden könnte.
Re: Datei wird nicht gelesen
Verfasst: Freitag 6. August 2021, 14:57
von __blackjack__
@Bio Salami: Natürlich muss man Variablen definieren bevor man sie benutzen kann, das bedeutet aber nicht das man die erst mit irgendwelchen Dummy-Werten definieren muss. Das Problem ist das wenn auch nur eine der beiden Dateien nicht gefunden wird, nichts an den Namen gebunden wird, weil das `open()` dann ja fehl schlägt und auch keinen Rückgabewert hat. Du behandelst dann die Ausnahme mit einer `print()`-Ausgabe. Und *danach* versuchst Du dann etwas mit den beiden Namen zu machen von denen mindestens einer nicht definiert ist weil das `open()` ja nicht komplett ausgeführt wurde.
Re: Datei wird nicht gelesen
Verfasst: Freitag 6. August 2021, 15:06
von Bio Salami
@__blackjack__ Danke aber es hilft mir irgendwie nicht weiter. Ich habe die Variablen so erstellt: usn = '' und ich habe die beiden open Befehle getrennt. Aber beide schlagen immer noch fehl.
Re: Datei wird nicht gelesen
Verfasst: Freitag 6. August 2021, 15:09
von __deets__
Was heisst die schlagen fehl? Wo ist der Code ohne schlechte Fehlerbehandlung, und wo ist die *vollstaendige* Fehlermeldung?
Re: Datei wird nicht gelesen
Verfasst: Freitag 6. August 2021, 15:20
von Bio Salami
Der Code:
Code: Alles auswählen
usn = ''
psw = ''
try:
psw = open('.psw/icpsw.txt','r')
except FileNotFoundError:
print("Passwort nicht gefunden")
try:
usn = open('.psw/icusn.txt','r')
except FileNotFoundError:
print("Nutzeradresse nicht gefunden")
print(usn + psw)
und hier die Fehlermeldungen: FileNotFoundError: [Errno 2] No such file or directory: '.psw/icpsw.txt'
Re: Datei wird nicht gelesen
Verfasst: Freitag 6. August 2021, 15:22
von Bio Salami
ps: Die dateien gibt es
Re: Datei wird nicht gelesen
Verfasst: Freitag 6. August 2021, 15:35
von __deets__
Es ist dir doch schon gesagt worden, dass deine Fehlerbehandlung schlecht ist. Warum ist die da noch drin?
Und das du relative Pfade angibst, ist dir klar? Was ist denn dein Arbeitsverzeichnis, relativ zu dem die aufgeloest werden?
Re: Datei wird nicht gelesen
Verfasst: Freitag 6. August 2021, 15:48
von Bio Salami
Habs. Danke
Re: Datei wird nicht gelesen
Verfasst: Freitag 6. August 2021, 18:43
von hyle
Btw. Wenn Du Dateien öffnest, dann musst Du diese auch wieder schließen! Eine weitere bessere Möglichkeit ist das with statement zu verwenden.
Siehe dazu hier:
https://docs.python.org/3/tutorial/inpu ... ting-files