Nautilus_Video_Converter

Stellt hier eure Projekte vor.
Internetseiten, Skripte, und alles andere bzgl. Python.
Antworten
busfahrer
User
Beiträge: 111
Registriert: Donnerstag 9. Oktober 2008, 17:42

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
Alles wird gut ;-)
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.
busfahrer
User
Beiträge: 111
Registriert: Donnerstag 9. Oktober 2008, 17:42

@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
Alles wird gut ;-)
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Für ein Nautilus Script hätte ich definitiv GTK und nicht TK verwendet ;)
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
busfahrer
User
Beiträge: 111
Registriert: Donnerstag 9. Oktober 2008, 17:42

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
Alles wird gut ;-)
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ß
busfahrer
User
Beiträge: 111
Registriert: Donnerstag 9. Oktober 2008, 17:42

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
Alles wird gut ;-)
Antworten