


Résumé des méthodes pour obtenir les paramètres de ligne de commande en Python
Présentation de la méthode python pour obtenir les paramètres de ligne de commande : module getopt et module argparse.
version python : 2.7
1. module getopt
utilise principalement les fonctions du module :
options, args = getopt.getopt(args, shortopts, longopts=[])
Paramètre args : généralement sys.argv[1 :]. Filtrez sys.argv[0], qui est le nom du script exécuté et n'est pas compté comme paramètre de ligne de commande.
Paramètre shortopts : chaîne d'analyse au format court. Par exemple : "hp:i:", il n'y a pas de deux-points après h, ce qui signifie qu'il n'y a pas de paramètres ; il y a des deux-points après p et i, ce qui signifie qu'il y a des paramètres.
Paramètre longopts : liste de chaînes d'analyse au format long. Par exemple : ["help", "ip=", "port="], il n'y a pas de signe égal après help, ce qui signifie qu'il n'y a pas de paramètres ; il y a deux points après ip et port, ce qui signifie qu'il y a des paramètres.
Les options de valeur de retour sont une liste avec des tuples comme éléments. La forme de chaque tuple est : (chaîne d'option, paramètres supplémentaires), telle que : ('-i', '192.168.0.1')
La valeur de retour args est une liste dont les éléments sont les paramètres qui ne contiennent pas '-' ou '--'.
Exécutez la commande suivante sur la ligne de commande :
python test_getopt.py -i 192.168.0.1 -p 80 123 a
ou
python test_getopt.py -ip=192.168.0.1 --port=80 123 a
le code test_getopt.py est le suivant :
#encoding=utf-8 import getopt import sys def main(argv): try: options, args = getopt.getopt(argv, "hp:i:", ["help", "ip=", "port="]) except getopt.GetoptError: sys.exit() for option, value in options: if option in ("-h", "--help"): print("help") if option in ("-i", "--ip"): print("ip is: {0}".format(value)) if option in ("-p", "--port"): print("port is: {0}".format(value)) print("error args: {0}".format(args)) if __name__ == '__main__': main(sys.argv[1:])
Les résultats d'exécution sont les suivants :
2. module argparse
Un module standard utilisé pour analyser les options et les paramètres de ligne de commande.
Étapes d'utilisation :
1 : importer argparse #Importer le module
2 : parser = argparse.ArgumentParser() #Créer un objet d'analyse
3 : analyseur .add_argument() #Ajouter les options de ligne de commande et les paramètres utilisés à l'objet
4 : parser.parser_args() #Analyser la ligne de commande
Détails suivants Présentation du méthodes ArgumentParser et add_argument :
ArgumentParser(prog=None, usage=None, description=None, epilog=None, parents=[], formatter_class=argparser.HelpFormatter, prefix_chars='-', fromfile_prefix_chars= None, argument_default=Aucun, conflict_handler='error', add_help=True)
Les paramètres ont des valeurs par défaut Lors de l'exécution du programme en raison de paramètres incorrects ou lors de l'appel de la méthode parser.print_help(), il imprimera ces descriptions. . Généralement, seule la description du paramètre doit être transmise.
add_argument(name ou flags... [, action] [, nargs] [, const] [, default] [, type] [, choix] [, obligatoire] [, aide] [, métavar] [, dest])
Les paramètres communs sont expliqués comme suit :
nom ou drapeaux : nom ou option du paramètre de ligne de commande, tel que -p, --port
action :
Store : Le mode d'action par défaut, stocke la valeur dans la variable spécifiée
Store_const : La valeur stockée est spécifiée dans la partie const du paramètre, souvent utilisée pour implémenter des valeurs non booléennes indicateurs de ligne de commande
store_true/store_false : commutateur booléen. La valeur par défaut de store_true est False. Si le commutateur booléen est entré sur la ligne de commande, la valeur est True. store_false est l'opposé
Append : stocke la valeur dans la liste, ce paramètre peut être réutilisé
Append_const : stocke la valeur dans la liste, la valeur stockée est spécifiée dans la partie const du paramètre
Nombre : Statistiques Le nombre d'abréviations des paramètres d'entrée
Version : Afficher les informations de version, puis quitter le script
nargs : Le nombre de paramètres de ligne de commande, généralement représenté par des caractères génériques : ? signifie qu'un seul est utilisé, * signifie 0 à plus, signifie 1 à plus
par défaut : valeur par défaut
type : le type de paramètre, la valeur par défaut est le type chaîne, il peut également être float , types int et booléens
choix : la plage de valeurs d'entrée
obligatoire : la valeur par défaut est False, si True, cela signifie que le paramètre doit être saisi
help : les informations d'invite d'aide utilisées
dest : Le nom de variable correspondant au paramètre dans le programme, tel que : add_argument("-a", dest="code_name"), utilisez parser.code_name dans le script pour accéder à la valeur de l'option de ligne de commande
L'exemple de code de script test_argparse.py est le suivant :
1 #encoding=utf-8 2 import argparse 3 4 def main(args): 5 print("--address {0}".format(args.code_address)) #args.address会报错,因为指定了dest的值 6 print("--flag {0}".format(args.flag)) #如果命令行中该参数输入的值不在choices列表中,则报错 7 print("--port {0}".format(args.port)) #prot的类型为int类型,如果命令行中没有输入该选项则报错 8 print("-l {0}".format(args.log)) #如果命令行中输入该参数,则该值为True。因为为短格式"-l"指定了别名"--log",所以程序中用args.log来访问 9 10 if __name__ == '__main__':11 parser = argparse.ArgumentParser(usage="it's usage tip.", description="help info.")12 parser.add_argument("--address", default=80, help="the port number.", dest="code_address")13 parser.add_argument("--flag", choices=['.txt', '.jpg', '.xml', '.png'], default=".txt", help="the file type")14 parser.add_argument("--port", type=int, required=True, help="the port number.")15 parser.add_argument("-l", "--log", default=False, action="store_true", help="active log info.")16 17 args = parser.parse_args()18 main(args)
Exécutez respectivement les commandes suivantes :
python test_argparse.py
python test_argparse.py --port 80
python test_argparse.py -- port 80 --flag apk
python test_argparse.py --port 80 -l
Pour plus de méthodes Python pour obtenir les paramètres de ligne de commande et les articles connexes, veuillez faire attention au site Web PHP chinois !

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Solution aux problèmes d'autorisation Lors de la visualisation de la version Python dans Linux Terminal Lorsque vous essayez d'afficher la version Python dans Linux Terminal, entrez Python ...

Comment enseigner les bases de la programmation novice en informatique dans les 10 heures? Si vous n'avez que 10 heures pour enseigner à l'informatique novice des connaissances en programmation, que choisissez-vous d'enseigner ...

Lorsque vous utilisez la bibliothèque Pandas de Python, comment copier des colonnes entières entre deux frames de données avec différentes structures est un problème courant. Supposons que nous ayons deux dats ...

Comment éviter d'être détecté lors de l'utilisation de FiddlereVerywhere pour les lectures d'homme dans le milieu lorsque vous utilisez FiddlereVerywhere ...

Comment Uvicorn écoute-t-il en permanence les demandes HTTP? Uvicorn est un serveur Web léger basé sur ASGI. L'une de ses fonctions principales est d'écouter les demandes HTTP et de procéder ...

Dans Python, comment créer dynamiquement un objet via une chaîne et appeler ses méthodes? Il s'agit d'une exigence de programmation courante, surtout si elle doit être configurée ou exécutée ...

Utilisation de Python dans Linux Terminal ...

Fastapi ...
