Datei kopieren

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

@Sophus: Ja so war das gedacht. Und `shutil.copy2()` legt natürlich eine neue Datei an wenn die noch nicht existiert — und kopiert dort den Inhalt von der Zieldatei hinein.

`setting_folder` ist als Name dafür jetzt natürlich unpassend und an `self` sollte man das sowieso nicht binden an der Stelle.

Das ``print`` am Ende vom ``try``-Block würde ich in einen ``else``-Zweig verschieben, denn *das* könnte auch die Ursache eines `IOError` sein. Wobei auch hier die Fehlerbehandlung IMHO fragwürdig ist weil sie nur Ausgaben macht die am Ende wahrscheinlich kein GUI-Benutzer sieht und ansonsten ignoriert das etwas nicht funktioniert hat.
Benutzeravatar
Sophus
User
Beiträge: 1109
Registriert: Freitag 25. April 2014, 12:46
Wohnort: Osnabrück

@BlackJack: Die Print-Ausgaben sind erst einmal für mich, damit ich in der Konsole sehen kann arbeiten kann. Das am Ende Messageboxen oder dergleichen an der Stelle anrücken müssen, ist mir auch klar :-) Und setting_folder habe ich deswegen an self gebunden, weil ich auch außerhalb der Funktion auf die Variable zugreifen möchte. Ansonsten wäre setting_folger eine lokale Variable und ich könnte damit in anderen Funktionen nicht arbeiten. Mhmh.
BlackJack

@Sophus: Das wäre dann ein konstanter Wert der erst vorhanden ist nachdem man eine bestimmte Methode aufgerufen hat. Was komisch bis fehleranfällig ist. EyDu ist das ja auch schon aufgefallen. Das Kriterium für ein Attribut ist nicht ob man den Wert in einer anderen Methode braucht sondern ob der tatsächlich logisch zum Zustand des Objekts gehört. Sonst hat man schnell das Äquivalent eines Moduls mit Funktionen die ``global`` verwenden um Werte auszutauschen, statt über Argumente und Rückgabewerte zu kommunizieren und das Programm so leichter nachvollziehbar und testbar zu machen.
Benutzeravatar
Sophus
User
Beiträge: 1109
Registriert: Freitag 25. April 2014, 12:46
Wohnort: Osnabrück

@BlackJack: Mit anderen Worten, die konstanten Werten auf Modul-Ebene verschieben, um diesen Wert als Konstante zu behandeln?
Antworten