Kopieren mit Datum

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
BlackJack

@Olds: Das erstellte Verzeichnis mit dem Datum in Namen enthält am Ende ein Leerzeichen. Soll das so? So etwas nervt Benutzer weil man das nicht sieht wenn man beispielsweise nur das Verzeichnis auflistet in dem dieses Verzeichnis liegt.

Wie schon mal gesagt: Lass den ganzen GUI-Kram erst einmal weg und löse das eigentliche Problem mit Hilfe von Funktionen. Also nicht nur Funktionen benutzen, sondern auch den eigenen Code sinnvoll auf Funktionen verteilen. Wenn das dann läuft, kann man eine GUI drauf setzen die diese Funktionen verwendet. Du versuchst hier zu viel auf einmal zu lösen.

Bei Datumsangaben in Dateinamen hat sich das '%Y-%m-%d'-Format bewährt. Das ist nicht nur ein ISO-Standard sondern hat auch noch die angenehme Eigenschaft, dass die Pfade zeitlich in der richtigen Reihenfolge liegen wenn man sie alphabetisch sortiert. Das ist bei '%d.%m.%Y' nicht der Fall. Da werden erst die gleichen Tage aller Monate und Jahre gruppiert, innerhalb dieser Tage nach Monaten, und dann erst nach Jahr. Das ist üblicherweise nicht das was man haben will, nämlich das Sicherungen die zeitlich aufeinanderfolgen auch in der Verzeichnisauflistung aufeinanderfolgen.

Die `exit()`-Funktion sollte man explizit aus `sys` importieren, weil die so nicht dokumentiert ist. Sie ist hier sowieso etwas hart, denn eigentlich möchte man an der Stelle bloss die Tk-Hauptschleife mit der `quit()`-Methode auf `Widget`-Objekten beenden, oder das Fenster mit der `destroy()`-Methode zerstören. Die Funktion heisst ja auch `closewindow()` und nicht `exit_program()`. Den Prozess mit `sys.exit()` beenden sollte man nur im Hauptprogramm tun, und da eigentlich auch nur wenn man dem Aufrufer einen anderen Rückgabecode als 0 liefern möchte. Sonst ist es besser wenn das Programm einfach dadurch endet, dass der Programmfluss am Ende angekommen ist.

Namen! Man kann gar nicht genug betonen wie wichtig gute Namen sind! `ori` ist kein guter Name, sowie `down` und `down1` keine guten Namen sind. Namen helfen dem Leser beim verstehen des Programms. Der Leser ist oft der Programmierer selber nach ein paar Monaten, wenn nicht mehr im Gedächtnis ist wie das alles genau funktioniert was er da geschrieben hat. Quelltext wird öfter gelesen als geschrieben, darum ist es wichtig es sich nicht beim Schreiben möglichst leicht zu machen, sondern es so zu schreiben, das es gut lesbar und verständlich ist. Kryptische Abkürzungen und andere schlechte oder gar falsche Namen sind dabei Gift.

Ich hatte es ja schon mal geschrieben: Nummerierte Namen sind fast immer schlecht. Das ist in aller Regel ein Zeichen, dass man sich keine Gedanken um einen passenden Namen gemacht hat, oder das man eigentlich eine Datenstruktur statt einzelner Namen verwenden wollte. Meistens eine Liste. Also immer wenn Du eine Nummer an einen Namen hängen willst, lass es bleiben und denk darüber nach was Du stattdessen machst.
Antworten