Bonjour,

J'ai un petit souci.

J'ai crée un script qui permet de générer des horaires d'utilisations pour un pc, grâce a os.system et la commande dos : net user /times.

Le script fonctionne à partir du moment ou il y a une heure d'entrée mais malgré le if qui qui dit que 's'il n'y a pas d'horaire il doit tout ouvrir', cette commande ne fonctionne pas et me met l'erreur suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Python24\lib\lib-tk\Tkinter.py", line 1345, in __call__
    return self.func(*args)
  File "C:/Documents and Settings/s.pillot/Mes documents/Pyton prog/horairesfinaux.py", line 50, in nom
    a=os.system(commande)
UnboundLocalError: local variable 'commande' referenced before assignment
Je pense comprendre que la variable dysfonctionne mais ce qui est bizarre c'est que pour les autres if, ca ne pose pas de problème.

De plus, je dois avoir les yeux bouchés car ca fait une heure que je regarde et que je ne vois pas ce qui cloche. Je fais donc appel à vous avec un regard neuf pour m'aider à debbuger.

Voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# -*- 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()

    # seulement le lundi
    if lundi:
        commande="net user "+nom+" /times:L," +lundi+" 2>rep.txt"
        #print commande
    # seulement mardi
    if mardi:
        commande="net user "+nom+" /times:Ma,"+mardi+" 2>rep.txt"
        #print commande
    # seulement mercredi
    if mercredi:
        commande="net user "+nom+" /times:Me,"+mercredi+" 2>rep.txt"
        #print commande
    # seulement jeudi
    if jeudi:
        commande="net user "+nom+" /times:j,"+jeudi+" 2>rep.txt"
        #print commande
    # seulement vendredi
    if vendredi:
        commande="net user "+nom+" /times:v,"+vendredi+" 2>rep.txt"
        #print commande
    # seulement samedi
    if samedi:
        commande="net user "+nom+" /times:s,"+samedi+" 2>rep.txt"
        #print commande
    # seulement dimanche
    if dimanche:
        commande="net user "+nom+" /times:d,"+dimanche+" 2>rep.txt"
        #print commande
    # si pas de données
    if not lundi and not mardi and mercredi and jeudi and vendredi and samedi and dimanche:
        commande="net user "+nom+" /times:all 2>rep.txt"
        print commande
    a=os.system(commande)
    b=open('rep.txt','r')
    result()

#définition reinitialiser
def reinitialiser():
    global b
    nom=ent1.get()
    commandere="net user "+nom+" /times:all 2>rep.txt"
    #print commandere
    a=os.system(commandere)
    b=open('rep.txt','r')
    result()

def result():
    fen1=Toplevel()
    fen1.title("Résultat")
    texte = ScrolledText(fen1, width = 75, 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.readlines())          #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)
    b.close()
    bou4=Button(fen1,text='Fermer',command=fen1.destroy)
    bou4.pack()

#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()
Merci a tous
Amicalement
Steph70