Programmation

Principes de base de l'analyse des arguments de ligne de commande en Python

Principes de base de l'analyse des arguments de ligne de commande en Python

Les applications en ligne de commande sont l'un des types d'applications les plus anciens et les plus utilisés. Si vous êtes un utilisateur Linux expérimenté, vous avez peut-être à peine utilisé des outils d'interface graphique au lieu d'outils de ligne de commande pour effectuer la même tâche. Par exemple, Anaconda, le gestionnaire de packages pour python, a des outils de ligne de commande nommés Conda et un outil GUI nommé anaconda navigator.

Ce qui rend l'application en ligne de commande populaire parmi les développeurs, c'est qu'elle consomme très peu de ressources par rapport à son homologue graphique et offre de meilleures performances.

Python est un langage simple et puissant pour créer des applications en ligne de commande. Il fournit des tonnes de bibliothèques déjà écrites par de nombreux grands programmeurs, ce qui facilite notre tâche car nous n'avons pas besoin de réécrire le même code.

Dans ce tutoriel, je vais vous présenter la bibliothèque Argparse de python, qui peut analyser les arguments des applications en ligne de commande. Ceci est utile pour créer de superbes interfaces de ligne de commande. Pour suivre ce tutoriel, il est recommandé d'avoir la dernière version de python installée. Nous avons également un tutoriel étape par étape sur la mise à jour de python vers la dernière version sous Linux.

introduction

L'analyse d'arguments est un concept important que nous devons utiliser pour créer des interfaces de ligne de commande puissantes et conviviales. Si vous avez déjà utilisé des applications en ligne de commande, vous avez peut-être remarqué que nous pouvons ajouter des arguments aux applications en ligne de commande pour configurer les options de l'outil.

Par exemple, si vous avez utilisé le ls commande sous Linux, qui est utilisée pour répertorier les éléments du répertoire de travail actuel, vous avez peut-être vu une sortie similaire, comme indiqué dans l'image ci-dessous.

commande ls sous Linux

Comme vous pouvez le voir sur l'image, il répertorie les éléments du répertoire actuel. Nous pouvons également utiliser le ls commande plus avantageusement en lui donnant un argument comme je l'ai fait dans la commande suivante.

ls -a

Maintenant, en tapant cette commande dans le terminal, il listera tous les éléments présents dans le répertoire de travail actuel, y compris les éléments cachés. Comme vous pouvez le voir, en fournissant des arguments sur la commande, nous pouvons facilement spécifier des options à la commande de manière conviviale. C'est là que les arguments entrent en jeu. Ils rendent les applications de ligne de commande plus utiles et conviviales.

Vous vous demandez peut-être quand et comment ajouter des arguments de ligne de commande dans vos applications. Imaginez que vous construisez une application qui a besoin d'une entrée utilisateur du nom de fichier que l'application va traiter.

Nous pouvons le faire de deux manières :

La première astuce est bonne, mais la seconde est plus utile car l'utilisateur peut donner toutes les options en une seule commande, ce qui la rend plus conviviale.

Python comprend une excellente bibliothèque nommée "argparse", qui est utile pour créer et analyser des arguments de ligne de commande et peut créer très facilement de puissantes interfaces de ligne de commande pour les utilisateurs. Examinons en profondeur la bibliothèque argparse de python.

Bibliothèque Argparse

le argparse La bibliothèque est un moyen simple et utile d'analyser les arguments lors de la création d'applications en ligne de commande en python. Bien qu'il existe d'autres arguments pour analyser les bibliothèques comme optparse, getopt, etc., les argparse la bibliothèque est officiellement la méthode recommandée pour analyser les arguments de ligne de commande.

Il est également disponible dans la bibliothèque standard de python, nous n'avons donc pas besoin de configuration manuelle. le argparse la bibliothèque a été construite en utilisant le optparse bibliothèque de python, mais argparse est plus utile et convivial pour les développeurs que le optparse bibliothèque.

Démo pratique d'Argparse

Voyons une démonstration pratique de l'utilisation de la bibliothèque argparse pour créer une interface de ligne de commande simple. Ce programme acceptera un chemin et vérifiera si le chemin existe ou non et s'il existe, puis affichera s'il s'agit d'un fichier ou d'un répertoire.

import os import argparse parser = argparse.Analyseur ArgumentParser('description = "Path Existence Checker").add_argument("--path", help="saisir un chemin pour vérifier s'il existe") args = parser.parse_args() input_path = args.chemin si os.chemin.isdir(input_path): print("Le chemin existe et c'est un répertoire") elif os.chemin.isfile(input_path): print("Le chemin existe et c'est un fichier") else: print("Le chemin n'existe pas")
En exécutant le programme ci-dessus, nous pouvons vérifier si le chemin existe ou non.

démo de l'analyse des arguments avec argparse

Vous pouvez également utiliser le -h argument avec le programme, qui est l'argument par défaut pour afficher les messages d'aide.

message d'aide par défaut d'argparse

Laissez-moi vous expliquer comment fonctionne le programme ci-dessus. Dans les deux premières lignes, nous avons importé les modules dont nous aurons besoin dans le programme. le système d'exploitation module a été importé pour vérifier si le chemin existe ou non, et s'agit-il d'un fichier ou d'un répertoire. Si vous voulez en savoir plus sur le système d'exploitation module, vous pouvez vous référer à notre guide sur le travail avec os en python.Dans la ligne suivante, nous avons importé la bibliothèque argparse requise pour créer et analyser les arguments. Dans la troisième ligne, nous créons un objet parser en utilisant la classe ArgumentParser de la bibliothèque argparse. Cette classe accepte également une description de paramètre facultative, qui sera affichée dans le message d'aide.Dans la ligne suivante, nous avons créé un argument nommé chemin en utilisant la méthode add_argument() de l'objet analyseur et donnons le détail dans le paramètre d'aide qui sera affiché dans le message d'aide comme nous l'avons vu dans la sortie plus tôt.Ensuite, nous analysons les arguments à l'aide de la méthode parse_args() de l'objet analyseur et accédons au chemin d'entrée de l'utilisateur en tant qu'argument. Nous avons obtenu le chemin que l'utilisateur a entré dans l'argument, puis l'avons utilisé avec le module os pour vérifier s'il s'agit d'un fichier ou d'un dossier. S'il n'est pas parmi les deux, il imprimera que le chemin n'existe pas.

Personnalisation

Voyons quelques-unes des personnalisations que nous pouvons apporter à notre interface de ligne de commande à l'aide de la bibliothèque argparse.

Aide à l'utilisation personnalisée

Lorsque nous exécutons le programme de démonstration que nous avons créé précédemment avec le -h paramètre, nous obtenons l'aide du programme en tant que sortie générée par la bibliothèque argparse. Si vous remarquez le message d'aide, il y a une aide à l'utilisation dans la ligne supérieure qui nous montre comment l'utiliser.Dans notre programme de démonstration, nous avons l'aide d'utilisation standard. Nous pouvons toujours le personnaliser facilement en utilisant le paramètre d'utilisation lors de la création de l'objet parser à l'aide de la classe ArgumentParser(). Regardez le code ci-dessous, qui sera modifié dans notre programme de démonstration.
parser = argparse.ArgumentParser(description = "Vérificateur d'existence de chemin", usage="cla.py chemin")
Voici la sortie :

aide à l'utilisation personnalisée dans argparse

Comme nous pouvons le voir dans la sortie, l'aide à l'utilisation a été remplacée par celle que nous spécifions dans le paramètre d'utilisation de la classe ArgumentParser().

Personnalisation des arguments

Nous pouvons également utiliser la bibliothèque Argparse pour personnaliser les arguments comme si les arguments seront requis ou non, en donnant à un argument une valeur par défaut.

Ajout de la valeur par défaut

Nous pouvons donner aux arguments une valeur par défaut en utilisant le paramètre par défaut au add_argument() méthode. Par exemple, voir le code ci-dessous.

import os import argparse parser = argparse.ArgumentParser(description = "Vérificateur d'existence de chemin", usage="cla.py path") parseur.add_argument("--path", help="saisir un chemin pour vérifier s'il existe", default="filename.txt") args = analyseur.parse_args() input_path = args.path if input_path == None : exit() elif os.chemin.isdir(input_path): print("Le chemin existe et c'est un répertoire") elif os.chemin.isfile(input_path): print("Le chemin existe et c'est un fichier") else: print("Le chemin n'existe pas")

En exécutant le programme ci-dessus sans aucun argument, nous obtiendrons la sortie ci-dessous. Comme indiqué dans la sortie, le programme vérifie le chemin nom de fichier.SMS, que nous définissons dans le paramètre par défaut.

donner une valeur par défaut aux arguments

Définition des exigences des arguments

Nous pouvons également utiliser la bibliothèque Argparse pour définir les exigences de l'argument, i.e., si les arguments seront nécessaires ou non. Pour ce faire, nous devons utiliser le paramètre requis, comme indiqué dans le code ci-dessous.

import os import argparse parser = argparse.ArgumentParser(description = "Vérificateur d'existence de chemin", usage="cla.py path") parseur.add_argument("--path", help="saisir un chemin pour vérifier s'il existe", default="filename.txt", requis=True) args = analyseur.parse_args() input_path = args.path if input_path == None : exit() elif os.chemin.isdir(input_path): print("Le chemin existe et c'est un répertoire") elif os.chemin.isfile(input_path): print("Le chemin existe et c'est un fichier") else: print("Le chemin n'existe pas")

En exécutant le code ci-dessus sans aucun argument, vous obtiendrez une erreur indiquant que les arguments suivants sont requis.

définir les exigences des arguments

Type d'argument

Nous pouvons également définir le type de données utilisé dans l'argument. Par exemple, si nous avons besoin du chemin, nous devons donner un type de données de chaîne. Si un utilisateur entre un type de données qui n'est pas une chaîne, Argparser le changera en une chaîne. Pour définir le type par défaut d'un argument, exécutez le code ci-dessous.

import os import argparse parser = argparse.ArgumentParser(description = "Vérificateur d'existence de chemin", usage="cla.py path") parseur.add_argument("--path", help="saisir un chemin pour vérifier s'il existe", type=str) args = parser.parse_args() input_path = args.path if input_path == None : exit() elif os.chemin.isdir(input_path): print("Le chemin existe et c'est un répertoire") elif os.chemin.isfile(input_path): print("Le chemin existe et c'est un fichier") else: print("Le chemin n'existe pas")

Production:

spécification du type de données des arguments

Conclusion

Ce ne sont que les bases de l'analyse des arguments à l'aide de la bibliothèque Argparse. Après avoir parcouru ce tutoriel, il est recommandé de lire la documentation officielle pour explorer plus d'astuces d'utilisation de cette bibliothèque. Vous pouvez également consulter l'article sur l'utilisation de la connexion en python, ce qui est très utile pour écrire de grandes applications et faciliter le débogage.

Examen de la souris sans fil Microsoft Sculpt Touch
J'ai lu récemment sur le Microsoft Sculpt Touch souris sans fil et j'ai décidé de l'acheter. Après l'avoir utilisé pendant un certain temps, j'ai déci...
Trackpad et pointeur de souris à l'écran AppyMouse pour tablettes Windows
Les utilisateurs de tablettes ratent souvent le pointeur de la souris, surtout lorsqu'ils ont l'habitude d'utiliser les ordinateurs portables. Les sma...
Le bouton central de la souris ne fonctionne pas sous Windows 10
le bouton central de la souris vous aide à faire défiler de longues pages Web et des écrans contenant beaucoup de données. Si cela s'arrête, et bien v...