class: center, middle # Utilisation de modules --- # Modules * Les modules sont des programmes Python qui contiennent des fonctions que l'on est amené à utiliser souvent. * Vous avez accès à une documentation exhaustive sur le site python: https://docs.python.org/3/py-modindex.html * L'instruction « `import` » permet d'importer l'ensemble des fonctions (ou sous modules) du module: ```python >>> import os # toutes les fonctions/sous modules du modules os sont disponibles >>> os.path # par exemple le sous module path
``` --- # Modules * Avec le mot clé « `from` » il est possible d'importer directement (et uniquement) la fonction/sous module ```python >>> from os import path >>> path # ici pas de prefix os
``` --- # Modules * Obtenir de l'aide sur un module ```python >>> help(os) Help on module os: NAME os - OS routines for NT or Posix depending on what system we're on. MODULE REFERENCE http://docs.python.org/3.10/library/os The following documentation is automatically generated from the Python source files. It may be incomplete, incorrect or include features that are considered implementation detail and may vary between Python implementations. When in doubt, consult the module reference at the ... ``` ```python >>> help(os.path) ... ``` * Pour quitter l'aide : « `q` » --- # Module « os » Interaction avec le système d'exploitation ```python >>> fullname='/home/maiage/sderozier/scripts/test.py' >>> import os >>> help(os.path.dirname) Help on function dirname in module posixpath: dirname(p) Returns the directory component of a pathname (END) >>> os.path.dirname(fullname) '/home/maiage/sderozier/scripts' ``` ```python >>> help(os.path.basename) Help on function basename in module posixpath: basename(p) Returns the final component of a pathname (END) >>> os.path.basename(fullpath) 'test.py' ``` --- # Module « os » ```python >>> help(os.path.abspath) Help on function abspath in module posixpath: abspath(path) Return an absolute path. (END) >>> currentdir = os.path.abspath(".") >>> currentdir '/home/oinizan/FORMATION-PYTHON-2018/CORRIGES' >>> os.listdir(currentdir) # listdir() du module os ['liste.py', 'traduction.py', 'revcomp.py', 'dictionnaire.py', 'controle.py'] ``` --- # Module « sys » La fonction « `argv` » du module « `sys` » permet de récupérer les arguments passés *en ligne de commande* au sein d'une liste. ```python 1 # script test.py 2 import sys 3 print(sys.argv) ``` ```bash $ python test.py alpha beta gamma ['test.py', 'alpha', 'beta', 'gamma'] ``` --- # Travaux Pratiques Créer un programme Python « `prenom-nom.py` » faisant appel au module « `sys` » permettant d'afficher les informations demandées *20 minutes d'autonomie* : ```bash Je m'appelle Prénom Nom ``` Le prénom et le nom doivent être passés en argument du programme et récupérés au sein de celui-ci afin d'effectuer l'affichage. --- # Module « argparse » Le module « `argparse` » permet une gestion **avancée** des arguments de la ligne de commande. ```python 1 # script test-argparse.py 2 import argparse 3 4 parser = argparse.ArgumentParser(description="Description libre.") 5 parser.add_argument("alpha", help="Valeur de alpha") 6 parser.add_argument("beta", help="Valeur de beta") 7 parser.add_argument("--gamma", help="Valeur de gamma") # Argument optionel 8 args = parser.parse_args() 9 10 print("Valeur de alpha :", args.alpha) 11 print("Valeur de beta :", args.beta) 12 if args.gamma: # gamma est optionel 13 print("Valeur de gamma ", args.gamma) ``` ```bash $ python argparse-test.py 1 2 --gamma 3 Valeur de alpha : 1 Valeur de beta : 2 Valeur de gamma 3 ``` --- # Module « argparse » L'argument « `--help` » génère automatiquement un description des arguments du programme : ```bash $ python argparse-test.py --help usage: argparse-test.py [-h] [--gamma GAMMA] alpha beta Description libre. positional arguments: alpha Valeur de alpha beta Valeur de beta options: -h, --help show this help message and exit --gamma GAMMA Valeur de gamma ``` --- # Travaux Pratiques Créer un nouveau programme Python « `prenom-nom-argparse.py` » qui cette fois utilise le module « `argparse` » pour récupérer les informations `prenom` et `nom` (*20 minutes d'autonomie*). Exemple d'affichage attendu : ```bash Bonjour Prénom Nom, comment allez-vous aujourd'hui ? ```