Seite 2 von 2

Re: Try/Except und shelve

Verfasst: Montag 16. November 2020, 21:30
von Sirius3
Zitate sind dazu da, dass man erkennt, welche Sätze zitiert wurden, wenn man das nicht sieht, dann ist das sehr verwirrend.
Bl3nder hat geschrieben: Montag 16. November 2020, 20:39 Das ist vorgegeben durch meine Software die auf dem Rechner läuft :Es werden über das Jahr Dateien erzeugt 2020_01 ..... und aus den wird einmal im Jahr eine Datei erzeugt die einfach nur .fertig.wrt heißt
Das erklärt aber nicht, warum Du Verzeichnisse der Form Monat/Jahr/Datei anlegst und nicht, wie es üblich ist Jahr/Monat/Datei.
Bl3nder hat geschrieben: Montag 16. November 2020, 20:39 Ich könnte die Funktion von aussen zweimal aufrufen mit jeweils unterschiedlichen Parametern [Pfaden] welchen unterschied macht den das genau
Halb so viel Code hat auch halb so viele Fehler.
Bl3nder hat geschrieben: Montag 16. November 2020, 20:39 Um dein Beispiel abschließend zu verstehen sieht meine main funktion dann in etwa so aus
Ja.
Bl3nder hat geschrieben: Montag 16. November 2020, 20:39 Das hatten wir ja beim letzten mal ist es auch verboten sich Sachen aus unterschiedlichen Bibliotheken zu benutzen
Verboten ist das nicht, aber unschön. Ich hatte es ja schonmal geschrieben: Wenn Du eine Biliothek benutzt, dann sucht man in deren Dokumentation nach der Funktionalität, die man braucht, und nicht in google.

Die Konvention zur Benutzung von try-Except habe ich Dir ja schon gesagt: Exceptions werden dort abgefangen, wo man sie sinnvoll behandeln kann. Das ist auch schon der ganze Leitfaden. Und natürlich kommt es dann auf den Einzelfall an.
Bl3nder hat geschrieben: Montag 16. November 2020, 20:39 In meinem Buch steht als Beispiel um zu erklären wie Try / except arbeitet:
Wenn das wirklich Beispiele aus Deinem Buch sind, dann sind die Schrott. Eine Funktion, die eine offene Datei oder None zurückliefert, ist keine sinnvolle Funktion, also hat das try da absolut nichts zu suchen, weil man beim Aufrufer im Fehlerfall nochmal eine Fallunterscheidung braucht.

An einfachen Beispielen kann man auch nicht die Benutzung in Komplexen Situationen lernen.
Bl3nder hat geschrieben: Montag 16. November 2020, 20:39 Ich meine was ist an

Code: Alles auswählen

    try:
        for file in pfad_fertigdaten.iterdir ():
            if not (pfad_medium / file.name).exists ():
                if file.name not in ("Fertigdaten.wrt", "Fertigdaten_konsistenz.wrt", ".fertig.wrt"):
                    fehlende_fertigdaten_auf_Medium.append (file.name)
        return fehlende_fertigdaten_auf_Medium
    except FileNotFoundError:
        print("Der Pfad zu den Fertigdaten kann nicht gefunden werden",pfad_fertigdaten)
so schlimm und falsch
Falsch ist hier nicht die Verwendung von try, sondern dass Du an anderer Stelle nochmal eine Sonderbehandlung brauchst. Es ist also nur im Zusammenspiel mit der anderen Funktion falsch.

Re: Try/Except und shelve

Verfasst: Montag 16. November 2020, 21:59
von Bl3nder
Das erklärt aber nicht, warum Du Verzeichnisse der Form Monat/Jahr/Datei anlegst und nicht, wie es üblich ist Jahr/Monat/Datei.
ok verstehe Ich nicht ganz da Ich zwei Verzeichnise erzeuge als erstes Monate das erzeuge Ich zu erst weil von Januar -Dezember noch keine Jahres Datei vorhanden ist ( die wird erst im nächsten Jahr erzeugt) und danach wird Jahr erzeugt also ist es doch logisch erst die Datein die vorhanden sind direkt in meine Struktur zu implementieren ?
Halb so viel Code hat auch halb so viele Fehler.
Verstehe Ich werde Ich ändern die Tage und den Code erneut Posten

Code: Alles auswählen

Um dein Beispiel abschließend zu verstehen sieht meine main funktion dann in etwa so aus 
->
Ja.
Dann Versuch Ich mir so eine Struktur in Main anzugewöhnen und versuche für den Anfang nichts in der Funktion abzufangen.

Wenn das wirklich Beispiele aus Deinem Buch sind, dann sind die Schrott. Eine Funktion, die eine offene Datei oder None zurückliefert, ist keine sinnvolle Funktion, also hat das try da absolut nichts zu suchen, weil man beim Aufrufer im Fehlerfall nochmal eine Fallunterscheidung braucht.

An einfachen Beispielen kann man auch nicht die Benutzung in Komplexen Situationen lernen.

http://openbook.rheinwerk-verlag.de/python/22_001.html -> Ich habe eine gekaufte Version davon