[python] affichage result cmd dos avec os.pyt

Fermé
stephane70 - 30 sept. 2009 à 08:08
 stephane70 - 30 sept. 2009 à 11:44
Bonjour a tous,

Je viens de créer un petit script qui 'normalement' permet de gérer les horaires de mes enfants passés devant leur ordinateur.

C'est normalement un truc tout simple qui utilise os.popen pour passer une commande dos net user /times et qui devrait donner le résultat de la commande dans une seconde fenêtre.

Le souci est que même si la commande marche, je n'ai rien qui s'affiche dans cette nouvelle fenêtre. J'ai donc dû me planter quelque part mais je ne vois pas ou.

Je fais donc appel à vous pour m'aider à pointer l'erreur.

Voici mon script :
# -*- coding: cp1252 -*-
from Tkinter import *
import os
from ScrolledText import *

#definition du traitement
def nom():
    global b
    nom=ent1.get()
    lundi=ent2.get()
    mardi=ent3.get()
    mercredi=ent4.get()
    jeudi=ent5.get()
    vendredi=ent6.get()
    samedi=ent7.get()
    dimanche=ent8.get()
    commande="net user "+nom+" /times:L," +lundi+";Ma,"+mardi+";Me,"+mercredi+";J,"+jeudi+";V,"+vendredi+";S,"+samedi+";D,"+dimanche
    #print commande
    a=os.popen(commande)
    b=a.read()
    a.close()
    result()

def result():
    fen1=Toplevel()
    fen1.title("Résultat")
    print b
    texte = ScrolledText(fen1, width = 35, height = 5, font = "Arial 10",
    relief = "groove")
    texte.pack()
    #Ecriture des données
    texte.config(state = NORMAL)    #Permettre l'écriture
    texte.insert("1.0", b)          #Gestion de l'insertin des lignes
                                        #1 = 1ere ligne  0 = 1er caractere de la ligne
    texte.config(state = DISABLED)  #Interdire les modifications
    bou4=Button(fen1,text='Fermer',command=fen1.destroy)
    bou4.pack()

#définition reinitialiser
def reinitialiser():
    nom=ent1.get()
    commandere="net user "+nom+" /times:all"
    print commandere
    #b=os.popen(commandere)

#Fenêtre principal
fen=Tk()
fen.title('Horaires V1.0 par S.Pillot')
text1=Label(fen,text='Entrer le nom de la session a limiter : ',fg='red')
text1.grid(column=0,row=0)
ent1=Entry(fen)
ent1.grid(column=1,row=0)
text2=Label(fen,text='Entrer les heures permises selon le modèle suivant : 13:00-20:00')
text2.grid()
text3=Label(fen,text='Lundi',fg='red')
text3.grid(column=0,row=3)
ent2=Entry(fen)
ent2.grid(column=1,row=3)
text4=Label(fen,text='Mardi',fg='red')
text4.grid(column=0,row=4)
ent3=Entry(fen)
ent3.grid(column=1,row=4)
text5=Label(fen,text='Mercredi',fg='red')
text5.grid(column=0,row=5)
ent4=Entry(fen)
ent4.grid(column=1,row=5)
text6=Label(fen,text='Jeudi',fg='red')
text6.grid(column=0,row=6)
ent5=Entry(fen)
ent5.grid(column=1,row=6)
text7=Label(fen,text='Vendredi',fg='red')
text7.grid(column=0,row=7)
ent6=Entry(fen)
ent6.grid(column=1,row=7)
text8=Label(fen,text='Samedi',fg='red')
text8.grid(column=0,row=8)
ent7=Entry(fen)
ent7.grid(column=1,row=8)
text9=Label(fen,text='Dimanche',fg='red')
text9.grid(column=0,row=9)
ent8=Entry(fen)
ent8.grid(column=1,row=9)
bou1=Button(fen,text='Envoyer',command=nom)
bou1.grid(column=2,row=10)
bou3=Button(fen,text='Reinitialiser',command=reinitialiser)
bou3.grid(column=0,row=10)
bou2=Button(fen,text=' Quitter ',command=fen.destroy)
bou2.grid(column=2,row=12)
fen.mainloop()



ps : Ah oui j'allais oublier, je voudrais qu'après avoir validé par le bouton 'envoyer', mes Entry redeviennent vide mais je n'ai pas trouvé le truc. Donc si vous pouvez également m'aiguiller.

Merci d'avance
Cordialement
Lonewolf
A voir également:

1 réponse

Rebonjour

J'ai pu reinitialiser les widgets Entry.

Je donne le script modifié et je continue mes recherches. J'ai aussi tenté le module commands sans plus de succès à la place d'os.popen.

Merci encore pour votre aide précieuse.
Amicalement
Stephane70

# -*- coding: cp1252 -*-
from Tkinter import *
import os
from ScrolledText import *
 
#definition du traitement
def nom():
    global b
    nom=ent1.get()
    lundi=ent2.get()
    mardi=ent3.get()
    mercredi=ent4.get()
    jeudi=ent5.get()
    vendredi=ent6.get()
    samedi=ent7.get()
    dimanche=ent8.get()
    commande="net user "+nom+" /times:L," +lundi+";Ma,"+mardi+";Me,"+mercredi+";J,"+jeudi+";V,"+vendredi+";S,"+samedi+";D,"+dimanche
    #print commande
    a=os.popen(commande)
    b=a.read()
    a.close()
    print b
    result()
 
def result():
    fen1=Toplevel()
    fen1.title("Résultat")
    texte = ScrolledText(fen1, width = 35, height = 5, font = "Arial 10",
    relief = "groove")
    texte.pack()
    #Ecriture des données
    texte.config(state = NORMAL)    #Permettre l'écriture
    texte.insert("1.0", b)          #Gestion de l'insertin des lignes
                                    #1 = 1ere ligne  0 = 1er caractere de la ligne
    texte.config(state = DISABLED)  #Interdire les modifications
    #Remettre à zero les entrées
    ent1.delete(0,END)
    ent2.delete(0,END)
    ent3.delete(0,END)
    ent4.delete(0,END)
    ent5.delete(0,END)
    ent6.delete(0,END)
    ent7.delete(0,END)
    ent8.delete(0,END)
    bou4=Button(fen1,text='Fermer',command=fen1.destroy)
    bou4.pack()
 
#définition reinitialiser
def reinitialiser():
    nom=ent1.get()
    commandere="net user "+nom+" /times:all"
    print commandere
    a=os.popen(commandere)
    b=a.read()
    a.close()
    print b
    result()
 
#Fenêtre principal
fen=Tk()
fen.title('Horaires V1.0 par S.Pillot')
text1=Label(fen,text='Entrer le nom de la session a limiter : ',fg='red')
text1.grid(column=0,row=0)
ent1=Entry(fen)
ent1.grid(column=1,row=0)
text2=Label(fen,text='Entrer les heures permises selon le modèle suivant : 13:00-20:00')
text2.grid()
text3=Label(fen,text='Lundi',fg='red')
text3.grid(column=0,row=3)
ent2=Entry(fen)
ent2.grid(column=1,row=3)
text4=Label(fen,text='Mardi',fg='red')
text4.grid(column=0,row=4)
ent3=Entry(fen)
ent3.grid(column=1,row=4)
text5=Label(fen,text='Mercredi',fg='red')
text5.grid(column=0,row=5)
ent4=Entry(fen)
ent4.grid(column=1,row=5)
text6=Label(fen,text='Jeudi',fg='red')
text6.grid(column=0,row=6)
ent5=Entry(fen)
ent5.grid(column=1,row=6)
text7=Label(fen,text='Vendredi',fg='red')
text7.grid(column=0,row=7)
ent6=Entry(fen)
ent6.grid(column=1,row=7)
text8=Label(fen,text='Samedi',fg='red')
text8.grid(column=0,row=8)
ent7=Entry(fen)
ent7.grid(column=1,row=8)
text9=Label(fen,text='Dimanche',fg='red')
text9.grid(column=0,row=9)
ent8=Entry(fen)
ent8.grid(column=1,row=9)
bou1=Button(fen,text='Envoyer',command=nom)
bou1.grid(column=2,row=10)
bou3=Button(fen,text='Reinitialiser',command=reinitialiser)
bou3.grid(column=0,row=10)
bou2=Button(fen,text=' Quitter ',command=fen.destroy)
bou2.grid(column=2,row=12)
fen.mainloop()
0