Python est largement connu pour sa polyvalence et sa facilité d'utilisation, en particulier lors de la création d'applications d'interface de ligne de commande (CLI). Que vous souhaitiez automatiser des tâches banales, créer des outils de développement ou créer des scripts flexibles, le riche écosystème de Python propose diverses bibliothèques pour gérer efficacement la CLI.
Dans cet article de blog, nous approfondirons l'utilisation des CLI en Python, en couvrant les points suivants :
À la fin de cet article, vous serez équipé pour créer des applications en ligne de commande robustes et conviviales.
Les CLI sont largement utilisées dans l'administration système, le traitement des données et le développement de logiciels car elles offrent :
Python propose plusieurs bibliothèques pour créer des outils CLI :
sys.argv est un moyen simple d'accéder aux arguments de ligne de commande. Il stocke les arguments de la ligne de commande sous forme de liste, où le premier élément est toujours le nom du script.
import sys # Command-line arguments print(f"Script Name: {sys.argv[0]}") print(f"Arguments: {sys.argv[1:]}")
Exécution du script :
$ python script.py arg1 arg2 arg3 Script Name: script.py Arguments: ['arg1', 'arg2', 'arg3']
Le module argparse est la bibliothèque standard de Python pour créer des CLI. Il offre plus de contrôle que sys.argv et génère automatiquement des messages d'aide et une gestion des erreurs.
import argparse parser = argparse.ArgumentParser(description="A simple CLI tool") parser.add_argument("name", help="Your name") parser.add_argument("--greet", help="Custom greeting", default="Hello") args = parser.parse_args() print(f"{args.greet}, {args.name}!")
Exécution du script :
$ python script.py Alice Hello, Alice! $ python script.py Alice --greet Hi Hi, Alice!
Exemple avec vérification de type et choix :
parser.add_argument("age", type=int, help="Your age") parser.add_argument("--format", choices=["json", "xml"], help="Output format")
Exécution du script :
$ python script.py Alice 30 --format json
click est une bibliothèque plus avancée pour créer des interfaces de ligne de commande. Il fournit une approche basée sur un décorateur pour définir les commandes, les sous-commandes et les options.
import click @click.command() @click.option('--name', prompt='Your name', help='The person to greet.') @click.option('--greet', default="Hello", help='Greeting to use.') def greet(name, greet): """Simple program that greets NAME with a GREET.""" click.echo(f'{greet}, {name}!') if __name__ == '__main__': greet()
Exécution du script :
$ python greet.py --name Alice --greet Hi Hi, Alice!
Vous pouvez créer des outils CLI plus complexes avec plusieurs sous-commandes.
import click @click.group() def cli(): pass @cli.command() def start(): click.echo("Starting the application...") @cli.command() def stop(): click.echo("Stopping the application...") if __name__ == '__main__': cli()
Exécution du script :
$ python app.py start Starting the application... $ python app.py stop Stopping the application...
Quelle que soit la bibliothèque que vous utilisez, la gestion des erreurs est cruciale pour offrir une expérience utilisateur fluide.
Si un argument obligatoire est manquant, argparse générera une erreur et affichera les instructions d'utilisation :
$ python script.py usage: script.py [-h] name script.py: error: the following arguments are required: name
En un clic, vous pouvez générer des exceptions personnalisées et gérer les erreurs avec élégance à l'aide de décorateurs.
@click.command() @click.option('--count', type=int, help='Number of repetitions') def repeat(count): if count is None or count
Combiner argparse et cliquer avec d'autres bibliothèques
Pour étendre la fonctionnalité CLI, vous pouvez combiner argparse ou click avec d'autres bibliothèques comme os, subprocess ou même des bibliothèques personnalisées.
Exemple : Combiner argparse avec os
import os import argparse parser = argparse.ArgumentParser(description="File operations CLI") parser.add_argument("filename", help="Name of the file to check") parser.add_argument("--create", action="store_true", help="Create the file if it does not exist") args = parser.parse_args() if os.path.exists(args.filename): print(f"{args.filename} already exists.") else: if args.create: with open(args.filename, 'w') as f: f.write("New file created.") print(f"{args.filename} created.") else: print(f"{args.filename} does not exist.")Exécution du script :
$ python filecli.py example.txt --create example.txt created.
Emballage de votre outil CLI
Pour distribuer votre outil CLI, vous pouvez le packager à l'aide des outils de configuration et le rendre accessible globalement sur n'importe quel système.
Étape 1 : Créer un fichier setup.py
from setuptools import setup setup( name='greet-cli', version='0.1', py_modules=['greet'], install_requires=[ 'click', ], entry_points=''' [console_scripts] greet=greet:greet ''', )Étape 2 : Installez votre CLI localement
$ pip install --editable .Désormais, la commande greet est disponible dans le monde entier :
$ greet --name Alice Hello, Alice!Distribuer sur PyPI
Pour distribuer votre outil publiquement, créez un compte PyPI et suivez les étapes pour télécharger votre package :
- Créez le package :
python setup.py sdist bdist_wheel
- Téléchargez le package :
twine upload dist/*
Meilleures pratiques pour la création de CLI
- Fournissez des messages d'aide clairs : incluez toujours --help pour guider les utilisateurs.
- Valider les entrées : utilisez la vérification de type et gérez les exceptions avec élégance.
- Concevez des commandes intuitives : assurez-vous que votre structure de commandes est logique et facile à utiliser.
- Testez avec des cas extrêmes : assurez-vous que votre outil CLI se comporte correctement même avec des entrées non valides.
- Modularisez votre code : gardez votre logique de ligne de commande séparée de vos fonctionnalités principales pour faciliter les tests et la maintenance.
Conclusion
Python fournit une excellente boîte à outils pour créer des applications d'interface de ligne de commande (CLI). Que vous utilisiez le module argparse intégré ou le clic plus riche en fonctionnalités, vous pouvez créer des outils puissants et conviviaux capables d'automatiser les flux de travail, de traiter les données et d'améliorer la productivité.
Maintenant que vous avez appris les bases et les fonctionnalités avancées de l'utilisation de la CLI en Python, il est temps de la mettre en pratique. Créez votre propre outil, partagez-le ou même distribuez-le dans le monde entier !
N'hésitez pas à nous contacter si vous avez des questions ou des suggestions :
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3