Seite 1 von 1

Nautilus_Video_Converter

Verfasst: Sonntag 28. Dezember 2008, 16:21
von busfahrer
Hallo

habe zu Übungszwecken und um meinen Python-Horizont zu
erweitern ein Programm zum konvertieren von Videos geschrieben,
welches meiner Tochter (und vielleicht auch anderen) als
Nautilus_Script dienen soll.Da ich noch sehr unerfahren bin,würde ich
mich über den ein oder anderen Kommentar der erfahreneren
Pythonisten freuen.

Hier der Code http://paste.pocoo.org/show/97020/


Gruß....busfahrer

Verfasst: Sonntag 28. Dezember 2008, 18:28
von BlackJack
@busfahrer: Die `Converter`-Klasse ist keine echte Klasse sondern einfach nur ein Behälter für Funktionen und damit ist die Klasse überflüssig.

Die Funktionen darin greifen auf `IN_DATEI` zu, statt den Dateinamen als Argument übergeben zu bekommen. Ausserdem sieht der Code von all den Funktionen sehr ähnlich aus. Da lässt sich bestimmt noch etwas in eine gemeinsam benutzte Funktion herausziehen.

``IN_DATEI[:-3] + "avi"`` ist nicht robust. Dateiendungen dürfen nicht nur drei Zeichen lang sein. Die Endung `.mpeg` ist zum Beispiel auch in freier Wildbahn anzutreffen. Schau Dir mal `os.path.splitext()` an.

`self.c` in der `Gui` ist ein nicht besonders aussagekräftiger Name. Wäre auch überhaupt nicht nötig, wenn die Funktionen nicht in der `Converter`-Klasse stecken würden.

Das Argument `master` wird in `Gui.__init__()` nicht verwendet, sollte es aber zum Beispiel bei den `Frame`\s, die Du erzeugst.

`Gui.ende()` greift auf das global definierte `root` zu. `hinweis()` ist keine Methode.

Das ``if``/``elif``-Konstrukt in `Gui.convert()` enthält in den einzelnen Zweigen fast identischen Quelltext. Das sollte man herausziehen und vielleicht ein Dictionary das Formate auf Funktionen abbildet, verwenden.

Der Quelltext ganz am Ende sollte in einer `main()`-Funktion verschwinden. Dann wäre man gar nicht erst in Versuchung gekommen in `Gui.ende()` auf `root` zuzugreifen.

"Whitespace" ist inkonstent eingesetzt. Mal sind Leerzeilen von Klassen- und Funktionsdefinitionen und mal nicht; mal ist ein Leerzeichen nach Kommata und mal nicht.

Verfasst: Sonntag 28. Dezember 2008, 18:52
von busfahrer
@BlackJack

vielen Dank für deine ernüchternden Worte.

Mir raucht jetzt schon der Schädel :shock:
Mir wird mal wieder klar das ich viele Dinge offensichtlich
noch nicht wirklich verstehe.
Ich werd mal sehen was ich von den Punkten die du aufgezählt
hast denn umgesetzt bekomme.


Gruß...busfahrer

Verfasst: Sonntag 28. Dezember 2008, 20:59
von veers
Für ein Nautilus Script hätte ich definitiv GTK und nicht TK verwendet ;)

Verfasst: Sonntag 28. Dezember 2008, 21:39
von busfahrer
Für ein Nautilus Script hätte ich definitiv GTK und nicht TK verwendet
Das ist ja nett gesagt,aber mein Wissen und somit meine Möglichkeiten
sind doch noch sehr begrenzt.Wenn ich mich jetzt auch noch mit einer neuen GUI beschäftigen muß,brennen mir glaube ich die Sicherungen
durch :)


Gruß...busfahrer

Verfasst: Montag 29. Dezember 2008, 00:30
von abgdf
@busfahrer: Also, ich find' Dein Skript für den Anfang nicht schlecht. Es gibt da schon viele Dinge, die Du richtig machst. Der Rest kommt bestimmt bald auch noch.

Gruß

Verfasst: Montag 29. Dezember 2008, 17:13
von busfahrer
Hallo Pythonisten :)

Habe das Programm nun mal überarbeitet(verbessert?),
unter berücksichtigung der Hinweise von @BlackJack.

Wäre schön wenn noch mal jemand drüber schaut,ob sich
meine Bemühungen denn halbwegs gelohnt haben.

Hier der überarbeitete Code http://paste.pocoo.org/show/97186/

Mit rauchendem Kopf
Gruß...busfahrer