Seite 1 von 2

Re: Type Error bei Verwendung mehrer Menüs

Verfasst: Freitag 21. Juni 2019, 13:44
von Sirius3
Komplett großgeschrieben Variablennamen sind nach Konvention Konstanten. OBJECT ist auch ein bescheidener Name, da alles ein Objekt ist. OBJEKT ist schon ein Path-Objekt, das nochmal in eins zu konvertieren, ist unsinnig.

Code: Alles auswählen

for filepath in Path.iterdir(TEMP_PATH):
    if filepath.name.startswith(TEMP_NAMES):
        print(filepath)

Re: Type Error bei Verwendung mehrer Menüs

Verfasst: Freitag 21. Juni 2019, 13:45
von __blackjack__
@TheBombTuber: `OBJECT` und `FILENAME` sollten nicht gross geschrieben werden, das sind ja keine Konstanten. `OBJECT` ist auch ein bisschen *sehr* generisch, denn in Python ist *alles* ein Objekt das man an einen Namen binden kann. Zudem ist `object` klein geschrieben schon der Name des eingebauten Grunddatentyps `object`.

Es macht auch nicht wirklich Sinn `Path` mit `OBJECT` aufzurufen, denn `OBJECT` ist ja bereits ein `Path`-Objekt.

Re: Type Error bei Verwendung mehrer Menüs

Verfasst: Freitag 21. Juni 2019, 13:51
von __deets__
Schoen das es klappt. Aber es gibt eine Menge zu meckern:

- GROSSBUCHSTABENSINDNURFUERKONSTANTENAUFMODULEBENEUNDNICHTFUERVARIABLEN. Also nicht OBJECT, nicht FILENAME. Sondern wenn object und filename (aber siehe gleich).
- object ist (auch kleingeschrieben) ein ganz doofer Name. Was ist denn bitte kein Objekt? Warum nicht einfach temp_file?
- Path(OBJECT).name ist cargo-cult. Das Ergebnis von iterdir sind schon Path-Objekte.
- .name nochmal an eine eigene Variable zuzuweisen ist ein bisschen ueberfluessig.

Re: Type Error bei Verwendung mehrer Menüs

Verfasst: Montag 24. Juni 2019, 07:04
von TheBombTuber
Danke an alle für die Hinweise.

Ich muss mich noch daran gewöhnen die Namenskonventionen genauer einzuhalten, aber ich versuche mein bestes.

Schlussendlich habe ich folgendes Ergebnis:

Code: Alles auswählen

for temp_files in Path.iterdir(TEMP_PATH):
    if (temp_files.name).startswith(TEMP_NAMES):
        print(temp_files, "wird entfernt")
        shutil.rmtree(TEMP_PATH,temp_files)

Re: Type Error bei Verwendung mehrer Menüs

Verfasst: Montag 24. Juni 2019, 07:15
von __blackjack__
@TheBombTuber: `Path.iterdir()` auf der Klasse aufzurufen ist komisch/falsch.

Die Klammern um `temp_files.name` sind überflüssig.

Der `shutil.rmtree()`-Aufruf bekommt falsche Argumente.

Re: Type Error bei Verwendung mehrer Menüs

Verfasst: Montag 24. Juni 2019, 07:24
von TheBombTuber
__blackjack__ hat geschrieben: Montag 24. Juni 2019, 07:15 @TheBombTuber: `Path.iterdir()` auf der Klasse aufzurufen ist komisch/falsch.

Die Klammern um `temp_files.name` sind überflüssig.

Der `shutil.rmtree()`-Aufruf bekommt falsche Argumente.
@blackjack: Wann sollte ich denn 'Path.iterdir()' aufrufen? Oder was ist an der jetzigen Methode falsch?

Ist entfernt.

Stimmt ist mir nicht aufgefallen, dass ich `shutil.rmtree()` den Pfad jetzt zweimal übergebe, da hab ich nicht aufgepasst.

Re: Type Error bei Verwendung mehrer Menüs

Verfasst: Montag 24. Juni 2019, 07:44
von Sirius3

Code: Alles auswählen

for filepath in TEMP_PATH.iterdir():
    if filepath.name.startswith(TEMP_NAMES):
        print(filepath , "wird entfernt")
        shutil.rmtree(filepath)

Re: Type Error bei Verwendung mehrer Menüs

Verfasst: Montag 24. Juni 2019, 10:25
von TheBombTuber
Sirius3 hat geschrieben: Montag 24. Juni 2019, 07:44

Code: Alles auswählen

for filepath in TEMP_PATH.iterdir():
    if filepath.name.startswith(TEMP_NAMES):
        print(filepath , "wird entfernt")
        shutil.rmtree(filepath)
@Sirius3: Danke. Ist angepasst und gemerkt :D