Bonjour,
tout d’abord merci car grâce à vous j’ai réussi à faire ce que je voulais!
Maintenant je suis dans la simplification et la réécriture de mon programme. Pour celà j’essaie de définir le maximum de fonctions.
J’aimerai donc définir une fonction avec le bout de code suivant avec comme argument un nombre (2 ici):
Tu as un problème de conception : tu as nommé tes widgets avec des numéros. Tu aurais pu faire une liste de widgets, comme ça par exemple :
Note que je ne me souviens pas de la façon d’instancier des boutons Tkinter, il faudra que tu remplaces. L’idée reste de les grouper dans une liste, ce qui te permettra par la suite cette fonction :
def effacer(num_poste):
bureau = "{0}{1}".format("UserBureau", poste[num_poste].get())
ConnecterSSH(num_poste)
run("rm -r /home/{}".format(bureau))
Note que ceci peut être risqué : tu n’es pas à l’abri d’injection Bash. Par exemple, si l’utilisateur peut renseigner dans ton widget poste2 le texte : “2 ; rm -rf /”, tu vas ensuite exécuter la commande :
Autre remarque, selon la convention en vigueur, les fonctions doivent être en minuscules avec des underscores :
connecter_ssh et non ConnecterSSH
effacer et non Effacer
Tout ça est détaillé dans le bouquin de Tarek Ziadé (Conception Python, je crois).
Ah oui super, ça paraît plus logique en effet!
Je vais tester ça…
Merci également pour les conventions d’écriture, tant qu’à faire, autant les respecter!
Pour le rm -rf /, la commande n’est pas lancé avec les droits root, donc ça ne devrait pas fonctionner non?
J’aimerais bien résumer tout ça par une fonction connecter(poste1,poste2)
Pour ça, il faudrait trouver une solution pour écrire dans la fonction rtp://226.0.0.1’poste2’:1234 | …etc.