![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Le script qui suit dirlist.py est un script qui présente une manière de gérer les arguments en python et de documenter un script en mode console.
On pourrait aussi utiliser les docstrings, mais pour avoir un exemple simple, je suis allé à l'essentiel et à programmation qui pourrait être commune avec d'autres langages de script comme shell ou perl.
voici le script complet:
#!/usr/bin/python# note1
import os,sys import getopt
# note2
def help(): print """ usage : dr [-r repertoire ] [-s] dr [--rep repertoire ] [--sort] dr [ -h ] [--help] dr [ -m ] [--man]affiche les fichiers contenus dans un repertoire """ sys.exit()
def man(): print """ NAME dr SYNOPSIS dr [-r repertoire ] [-s] dr [--rep repertoire ] [--sort] dr [ -h ] [--help] dr [ -m ] [--man]
OPTIONS
-r, --rep specifie un repertoire -s, --sort trie les fichiers par ordre alphabetique -h, --help donne de l'aide -m, --man presente la page man
SAMPLES
affiche le repertoire courrant
dr
affiche le repertoire python trie
dr --rep d:\python -s
AUTHOR Jean-Louis Bicquelet-Salaün (c) 2003
VERSION 1.0
DATE 01/09/2003 """ # note3
sys.exit()# note4
def dirlst(rep,sort='oui'): """ retourne une liste des fichiers contenus dans un répertoire eventuellement trie si le deuxieme parametre est 'oui'exemple :
noms = dirlst('.','oui') for n in noms: if n[0] !='.': print n """
noms=os.listdir(rep) if sort=='oui': noms.sort() return noms
# note5
def main(): try: opts,args=getopt.getopt(sys.argv[1:],"hmsr:",["help","man","sort","rep="]) except getopt.GetoptError: help() sys.exit(2)rep='.' sort = 'non' for o,a in opts: if o== "-v": verbose = True if o in ("-h","--help"): help() if o in ("-m","--man"): man() if o in ("-s","--sort"): sort='oui' if o in ("-r","--rep"): rep=a
print rep,sort n = dirlst(rep,sort) for i in n: print i
# note6
if name == ' main ': main()
print """ usage : dr [-r repertoire ] [-s] dr [--rep repertoire ] [--sort] dr [ -h ] [--help] dr [ -m ] [--man]affiche les fichiers contenus dans un repertoire """
La fonction man qui suit donne un modèle avec une structure en forme de manpage.
Celle-ci est définie comme suit :
def dirlst(rep,sort='oui'):.
Cette fonction a une valeur docstring définie. C'est à dire que la ligne qui suit sa définition commence par ''' ou """et se termine plus loin par ces mêmes valeurs.
Cela permet de commenter le code python. Ceci peut se faire au niveau d'une fonction comme ici, d'une classe ou d'un module.
Pour extraire la documentation, il suffit de taper le nom de la fonction, de la classe ou du module suivi de:
try: opts,args=getopt.getopt(sys.argv[1:],"hmsr:",["help","man","sort","rep="]) except getopt.GetoptError: help() sys.exit(2)Le deuxième argument (ici "hmsr") correspond aux paramêtres courts.
tout programme indépendant doit contenir cette ligne:
if name == ' main ':
Python sait alors que le fichier python n'est pas un simple module et peut être indépendant.
Dans notre cas, si il est appelé seul et non pas chargé comme module, la fonction main va être appelé. On peut bien sur changer le nomde cette fonction, pourvu que celle-ci existe dans le script.
Vous pouvez télécharger librement ce script