[Python-de] Testen, ob Variabel existiert

Hartmut Goebel h.goebel at goebel-consult.de
Mon Sep 6 18:54:21 CEST 2004


Hi,

Marcus Habermehl wrote:

> "access(path.join(path, wm), X_OK):" ersetzt.
> 
> Beim Aufruf des Skriptes erhalte ich diese Fehlermeldung:
> 
> TypeError: join() takes exactly one argument (2 given)

Du möchtest os.path.join() verwenden. Oben verwendest Du path.join(), 
also die Methode join() des Objekts Path (= Instanz von str), und die 
nimmt in der Tat nur ein Argument.

>>Hier bietet sich eher an, stattdessen eine Map von rb auf wm aufzubauen - denn 
>>das Label kann ja zb auch mal anders aussehen, zB "KDE" oder so. 
> 
> Das Label ist immer der Aufruf des WMs. Siehe ganz oben (label = wm).
> Eigentlich wollte ich entsprechend die Labels ändern. Zumindest für
> Xfce4, KDE und Gnome. Der Aufruf startxfce4, startkde und gnome-session
> als Label sieht nicht sehr schön aus. 
> 
> Aber als Lösung dafür ist mir auch nur dieses eingefallen.
> 
> [ ... Testen ob WM existiert ... ]
> if wm == 'gnome-session':
>     label = 'Gnome'
> elif wm == 'startkde':
>     label = 'KDE'
> elif wm == 'startxfce4':
>     label = 'XFce4'
> else:
>     label = wm
> [ ... Aufbau der RadioButton ... ]

Besser ein dict verwenden, wie Diez schon geschrieben hat.

> Hier taucht aber ja wieder das Problem auf, wenn Gnome mal nicht über
> gnome-session aufgerufen wird, müsste das Skript auch wieder an mehreren
> Stellen angepasst werden.

Dann verwendest DU einweder das dict, oder Du schreibst eine kleine 
Funktion, di dann mehrmals aufgerufen wird.

> Du hast in einer Mail ein Config-File angesprochen. Der Gedanke wäre
> vielleicht ganz gut um das eine oder andere Problem zu lösen.
...
 > Hast du da vielleicht auch einen Tipp für mich?

Schau Dir mal ConfigParser an. Nimmt Konfig-file im Fomat

[WMS]
startkde: KDE
gnome-session: Gnome

[My Nead Stuff]
path = xas
name = adfad
...



-- 
Schönen Gruß - Regards
Hartmut Goebel

| Hartmut Goebel             | IT-Security -- effizient |
| h.goebel at goebel-consult.de | www.goebel-consult.de    |