dr utilise le module getopt pour gérer les options.
dr fait aussi appel au module sys pour quitter le programme et os pour lister les fichiers.
dr est décomposé en 3 fonctions:
La gestion des options se fait à l'aide de la fonction getopt.getopt.
Si une valeur attendue est binaire, on donne la parametre sous forme de lettre ou de nom (exemple: "h" , "help").
Si on attent une valeur en paramètre on termine l'option par le caractère : ou = pour l'option longue (exemple "r", "rep=").
La fonction getopt.getopt retourne deux listes (opts et args). On traite ensuite les cas en fonction des valeurs de (opts.
On remarquera que la gestion des cas imprevues est laissée au Try. En cas d'erreur sur les parametres passés except getopt.GetoptError: est executé et on affiche l'aide.
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
Pour faire propre on utilise les lignes. Tous les modules disposent de l'attribut prédéfini __name__. Si vous importez le module, son __name__ est le nom de fichier du module sans le chemin d'accès ni le suffixe. Si lancer le module directement en tant que programme, dans ce cas __name__ va prendre par défaut une valeur spéciale, __name__. On peut donc utiliser dr soit comme module et appeler dirlst():, soit comme un programme qui analyse les arguments et liste les fichiers.
if __name__ == '__main__': main()
Cette astuce permet par exemple de réaliser une baterie de test quand le module est seul et sinon appeler ses fonctions.
Python supporte les heredocs delimité par une simple ou une double quotes repétée 3 fois. Dans le cas d'une simple quote il n'y a pas d'interprétation du texte. Dans le cas d'une double quote on peut interpréter et passer les valeurs.
Ainsi la fonction help() est en simple quote car rien ne varie et help() est en double quote pour afficher la date et le numéro de version qui sont en variable globale en début de script et qui sont ainsi plus facilement modifiables.
print """ usage : dr [-r repertoire ] [-s] """
Dans ce script, on utilise pas de docstring. Celles-ci fournissent un moyen facile d'associer la documentation avec les modules python, les fonctions, les classes et les méthodes.
directory list (dr) | dr.py |