Bonjour,
Dans le cadre d'une mise en production d'un script d'automatisation, je bute dès le début du script, sur un soucis de déclaration d'argument qui doit être récupéré dans le script.
Voici le script et je m'explique:
Le but de mon script, à terme, est de l'utiliser dans un environnement VTOM, qui est un ordonnanceur.
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 # -*- coding: utf-8 -*- import os import sys import time import os.path import getopt # Constantes : nom et version du script __NOM_SCRIPT="verif_dossier.py" __VERSION_SCRIPT="1.0" # Definition des constantes systemes __SYSTEM = sys.platform __PYTHON_VERSION = sys.version # Definition des constantes code retour VTOM CR_WG = 1 # code retour warning CR_BL = 3 # code retour bloquant CR_OK = 0 # code retour bonne execution # Definitions des variables globales : vg_Debug = False vg_Param_d = "" vg_Timeout = 5 # Version du CC a completer __VERSION = __NOM_SCRIPT + " v" + __VERSION_SCRIPT + " - python "+__PYTHON_VERSION+" - "+__SYSTEM #*****************************************************************************************************************************# # Définitions des fonctions et procédures # #*****************************************************************************************************************************# def p_Debug(chaine): # affiche la chaine lorsque l'option debug est positionnée a True if vg_Debug : print str(chaine) def p_Test_Options_Script(arguments): # tests les arguments passes en parametres au script p_Debug("Tests des arguments du script") if arguments == [] : print "*** un argument est manquant ***" p_Print_Usage(CR_BL) p_Test_Option_Dossier() def p_Test_Option_Dossier(): global vg_Param_d #le champ -d doit être renseigné obligatoirement if vg_Param_d == "" : print "*** Il n'y a pas de nom de dossier d'indiqué ***" p_Print_Usage(CR_BL) def p_Param_Lg_Commande(params): # Gestion des arguments passes en parametre de la ligne de commandes global vg_Param_d global vg_Debug global vg_Timeout try: opts, args = getopt.getopt(params, "d", ["dossier="]) except getopt.GetoptError, err: # print help information and exit: print str(err) # will print something like "option -d not recognized" p_Print_Usage(CR_BL) for o, d in opts: if o == ("--help"): p_Print_Usage(CR_BL) elif o in ("--dossier" ,"-d"): vg_Param_d = vg_Param_d + ' ' + a else : assert False, "Option invalide" # affiche un message d erreur en cas de params incorrects p_Test_Options_Script(params) def p_Verif_Creation_Dossier(): global vg_Param_d #*******************************************************************************************************************************# # Main # #*******************************************************************************************************************************# if __name__ == "__main__": # Variable du programme principal # Affiche la version print __VERSION + "\n" p_Param_Lg_Commande(sys.argv[1:]) print ('Hello' + vg_Param_d)
Le script, aura un argument rentré en dur, par exemple : python NOM_DE_MON_SCRIPT.py -d DOSSIER_LG_PROD
Je voudrais que le script, au passage de l'argument, check si le dossier existe, et dans le cas contraire, le créé avec une nomenclature précise, celle indiquée dans l'argument passée au script.
Il faut donc que je puisse interpréter l'argument dans le script si le dossier demandé n'existe pas, créer ce dossier avec une arborescence précise, et timestamper certains fichiers et dossiers par la suite, mais le soucis actuel est vraiment de pouvoir interpréter en variable l'argument mis dans la ligne de commande, pour que le script automatise le processus de création de l'arborescence en fonction de l'argument rentré.
Je ne sais pas si c'est bien clair mais si quelqu'un a une idée et surtout si c'est faisable.
Merci pour votre précieuse aide.
PS: Il est en cours de construction, il ne faut pas faire attention si des fonctions ne sont pas complètes![]()
Partager