Learning Center
Programmation Python

Options de ligne de commande et analyse des arguments avec argparse en Python

25 nov. 2025
Hostman Team
Hostman Team

Les interfaces en ligne de commande (CLI) sont parmi les moyens les plus rapides et les plus efficaces d’interagir avec un logiciel. Elles permettent d’exécuter des commandes directement, ce qui se traduit par une exécution plus rapide et des fonctionnalités enrichies. Les développeurs créent souvent des CLI en Python pour diverses applications, utilitaires et scripts d’automatisation, afin de traiter dynamiquement les entrées utilisateur. C’est ici qu’intervient le module argparse de Python.

Le module argparse simplifie la gestion des entrées en ligne de commande et permet aux développeurs de créer des outils interactifs et conviviaux. Faisant partie de la bibliothèque standard, il permet de définir, traiter et valider les entrées sans nécessiter de logique complexe.

Cet article présente les concepts essentiels, des exemples utiles et des fonctionnalités avancées du module argparse pour vous aider à créer rapidement des outils CLI fiables.

Comment utiliser argparse en Python pour les interfaces en ligne de commande
Copier le lien

Étape 1 : Importer le module
Copier le lien

Importez le module dans votre script :

import argparse

Cela permet l’analyse des arguments transmis à un script Python via la ligne de commande.

Étape 2 : Créer un objet ArgumentParser
Copier le lien

La classe ArgumentParser constitue l’élément central de l’API du module argparse. Commencez par créer une instance :

parser = argparse.ArgumentParser(description="A Hostman tutorial on Python argparse.")

Ici :

  • description explique ce que fait le programme et s’affiche lorsqu’on utilise --help.

Étape 3 : Ajouter des entrées et options
Copier le lien

Définissez les paramètres acceptés par votre programme à l’aide de add_argument() :

parser.add_argument('filename', type=str, help="Name of the file to process")

parser.add_argument('--verbose', action='store_true', help="Enable verbose mode")

Explications :

  • filename est obligatoire.

  • --verbose est optionnel et active le mode verbeux.

Étape 4 : Analyser les entrées utilisateur
Copier le lien

Traitez les arguments fournis :

args = parser.parse_args()

Les valeurs extraites sont accessibles sous forme d’attributs de l’objet args.

Étape 5 : Utiliser les données traitées
Copier le lien

Exemple :

print(f"File to process: {args.filename}")

if args.verbose:

    print("Verbose mode enabled")

else:

    print("Verbose mode disabled")

Exemples d’utilisation de la CLI
Copier le lien

Traitement d’un fichier sans mode verbeux
Copier le lien

python3 file.py example.txt

Traitement d’un fichier avec mode verbeux
Copier le lien

python3 file.py example.txt --verbose

Afficher l’aide
Copier le lien

python3 file.py --help

Exemples courants d’utilisation de argparse
Copier le lien

Exemple 1 : Ajouter des valeurs par défaut
Copier le lien

Les arguments optionnels peuvent disposer de valeurs par défaut. Ici, --timeout adopte une valeur par défaut de 30 secondes :

import argparse

parser = argparse.ArgumentParser(description="Demonstrating default argument values.")

parser.add_argument('--timeout', type=int, default=30, help="Timeout in seconds (default: 30)")

args = parser.parse_args()

print(f"Timeout value: {args.timeout} seconds")

Explications

  • Importation du module

  • Création de l’objet ArgumentParser

  • Ajout de --timeout avec type entier et valeur par défaut

  • Analyse avec parse_args()

Cas 1 : valeur par défaut

python file.py

Cas 2 : valeur personnalisée

python file.py --timeout 60

Exemple 2 : Utiliser choices
Copier le lien

Le paramètre choices limite un argument à une liste de valeurs valides :

parser.add_argument('--mode', choices=['basic', 'advanced'], help="Choose the mode of operation")

Cas 1 : valeur valide

python3 file.py --mode basic

Cas 2 : aucun argument

python3 file.py

Cas 3 : valeur non valide

python3 file.py --mode intermediate

Exemple 3 : Gérer plusieurs valeurs
Copier le lien

Le paramètre nargs='+' permet d’accepter plusieurs valeurs pour un même argument :

parser.add_argument('--numbers', nargs='+', type=int, help="List of numbers to process")

Cas 1 : plusieurs valeurs

python3 file.py --numbers 10 20 30

Cas 2 : une seule valeur

python3 file.py --numbers 5

Cas 3 : aucune valeur

python3 file.py

Cas 4 : entrée non valide

python3 file.py --numbers 10 abc 20

Exemple 4 : Arguments optionnels obligatoires
Copier le lien

Bien que les arguments commençant par -- soient optionnels, ils peuvent être rendus obligatoires avec required=True :

parser.add_argument('--config', required=True, help="Path to the configuration file")

Cas 1 : entrée valide

python3 file.py --config settings.json

Cas 2 : absence de l’argument obligatoire

python3 file.py

Fonctionnalités avancées
Copier le lien

Flags booléens
Copier le lien

parser.add_argument('--debug', action='store_true', help="Enable debugging mode")

Regrouper des arguments liés
Copier le lien

group = parser.add_argument_group('File Operations')

group.add_argument('--input', type=str, help="Input file")

group.add_argument('--output', type=str, help="Output file")

Arguments mutuellement exclusifs
Copier le lien

group = parser.add_mutually_exclusive_group()

group.add_argument('--json', action='store_true', help="Output in JSON format")

group.add_argument('--xml', action='store_true', help="Output in XML format")

Conclusion
Copier le lien

Le module argparse simplifie la création de CLI robustes pour traiter les arguments de ligne de commande en Python. Des paramètres de base aux options avancées comme choices et nargs, les développeurs peuvent créer des outils puissants, fiables et faciles à utiliser. Donner des noms clairs aux arguments et rédiger de bonnes descriptions contribue également à rendre les scripts plus lisibles et plus simples à maintenir.