Résumé des méthodes pour obtenir les paramètres de ligne de commande en Python

高洛峰
Libérer: 2017-03-08 10:09:05
original
2789 Les gens l'ont consulté

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:])
Copier après la connexion

Les résultats d'exécution sont les suivants :

Résumé des méthodes pour obtenir les paramètres de ligne de commande en Python

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)
Copier après la connexion

Exécutez respectivement les commandes suivantes :

python test_argparse.py

Résumé des méthodes pour obtenir les paramètres de ligne de commande en Python

python test_argparse.py --port 80

Résumé des méthodes pour obtenir les paramètres de ligne de commande en Python

python test_argparse.py -- port 80 --flag apk

Résumé des méthodes pour obtenir les paramètres de ligne de commande en Python

python test_argparse.py --port 80 -l

Résumé des méthodes pour obtenir les paramètres de ligne de commande en Python

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 !


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal