[Python-de] Testen, ob Variabel existiert

Marcus Habermehl bmh1980de at yahoo.de
Son Sep 5 13:59:57 CEST 2004


Hallo.

Am Sam, den 04.09.2004 um 14:36 Uhr +0200 schrieb Diez B. Roggisch:

[...]

> > Es wäre wohl am besten, wenn ich die Variabel paths aus deinem Beispiel
> > so benutze, oder?
> >
> > paths = os.getenv('PATH').split(':')
> >
> > Somit dürgen Änderungen am Code nicht nötig sein, da es ja, wie es
> > richtig sein sollte, über ${PATH} gesteuert wird, aus welchen
> > Verzeichnissen ein User etwas ausführen darf.
> 
> Das ist sicher eine gute Loesung - und ebenfalls eine Liste..... Das Argument 
> bleibt also gueltig.

Der Einsatz von Listen macht den Code wirklich um Einiges kürzer. Die
ursprüngliche Datie war 7,8 und die neue nur 2,7 KB groß.

Am Anfang des Skriptes lese ich $PATH mit getenv('PATH').split(':') ein.

Die gesuchten WMs habe ich in eine Liste gepackt.

Und ob die WMs auch existieren, bzw. aufrufbar sind, prüfe ich jetzt so
und erzeuge auch gleich die RadioButtons.

for wm in wms:
    rb = wm
    for path in paths:
        if access(path+'/'+wm, X_OK):
            if group:
                rb = gtk.RadioButton(label = wm, group = group)
            else:
                rb = gtk.RadioButton(label = wm)
                group = rb
            vbox1.pack_start(rb)
            rbs.append(rb)
            break

Mein ursprüngliches Problem habe ich dann so gelöst.

for rb in rbs:
    if rb.get_active() == True:
        wm = rb.get_label()
        system(wm)
        break

Auch wenn ich ein bissl basteln musste, hab ich es hinbekommen. Würd
also sagen, dass ich etwas gelernt habe. Hoffe ich! Nicht, dass ich hier
auch wieder Klimmzüge gemacht habe.

Zwar funktioniert das Skript noch nicht so, wie ich es mir wünsche. Aber
das ist ein Problem mit PyGTK.

Vielen Dank für deine Hilfe und deine Geduld mit mir.

Gruß

Marcus