Python: les paramètres et options au lancement d'un programme Python
Par ChatGPT, relecture AMO
Nota: dans la suite de ce post, les réponses sont celles de ChatGPT après qu’il ait eu connaissance d’un script de base.
Solution basique
Pour créer un programme Python qui prend un paramètre en entrée, vous pouvez utiliser le module sys
pour accéder aux arguments de ligne de commande. Voici un exemple de code :
import sys
# Vérifier s'il y a suffisamment d'arguments
if len(sys.argv) < 2:
print("Usage: python mon_programme.py parametre")
sys.exit(1)
# Récupérer le paramètre
parametre = sys.argv[1]
# Utiliser le paramètre
print("Le paramètre est :", parametre)
Dans cet exemple, sys.argv
est une liste qui contient les arguments de ligne de commande passés au programme. sys.argv[0]
est le nom du script lui-même, et sys.argv[1]
est le premier argument supplémentaire.
Vous pouvez exécuter ce programme en ligne de commande en utilisant la commande python mon_programme.py valeur_du_parametre
, où valeur_du_parametre
est le paramètre que vous souhaitez passer.
Notez que les éléments dans sys.argv
sont des chaînes de caractères. Si vous souhaitez utiliser le paramètre comme autre chose qu’une chaîne, vous devrez le convertir en conséquence (par exemple, en utilisant int(parametre)
pour le convertir en entier).
Solution avec arsparse
Oui, argparse
peut être utilisé pour lire le paramètre en entrée au lieu de sys.argv
et combiner la fonctionnalité de sys
avec les fonctionnalités plus avancées de argparse
.
Voici comment vous pouvez intégrer argparse
pour gérer à la fois le paramètre en entrée et l’option facultative --all
:
import argparse
# Créer le parseur d'arguments
parser = argparse.ArgumentParser()
parser.add_argument("parametre", help="Le paramètre en entrée")
parser.add_argument("--all", action="store_true", help="Imprimer toutes les informations")
# Analyser les arguments de ligne de commande
args = parser.parse_args()
# Récupérer le paramètre en entrée
parametre = args.parametre
# Votre code pour récupérer les données JSON en utilisant le paramètre
# Imprimer les informations en fonction de l'option --all
if args.all:
# Imprimer toutes les informations
print("Imprimer toutes les informations")
# Votre code pour imprimer toutes les informations
else:
# Imprimer seulement les informations nécessaires
print("Imprimer seulement les informations nécessaires")
# Votre code pour imprimer les informations nécessaires
Dans cet exemple, nous avons ajouté parser.add_argument("parametre")
pour spécifier que notre programme attend un paramètre en entrée. Vous pouvez accéder à ce paramètre à l’aide de args.parametre
.
Ensuite, vous pouvez toujours utiliser args.all
pour vérifier si l’option --all
est présente et prendre des mesures en conséquence.
De cette manière, argparse
peut remplacer l’utilisation de sys
pour lire à la fois le paramètre en entrée et les options facultatives.