Maison développement back-end Tutoriel Python Résumé des méthodes pour obtenir les paramètres de ligne de commande en Python

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

Mar 08, 2017 am 10:09 AM

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 !


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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

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 !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Comment résoudre le problème des autorisations rencontré lors de la visualisation de la version Python dans le terminal Linux? Comment résoudre le problème des autorisations rencontré lors de la visualisation de la version Python dans le terminal Linux? Apr 01, 2025 pm 05:09 PM

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 le projet et les méthodes axées sur les problèmes dans les 10 heures? Comment enseigner les bases de la programmation novice en informatique dans le projet et les méthodes axées sur les problèmes dans les 10 heures? Apr 02, 2025 am 07:18 AM

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 ...

Comment copier efficacement la colonne entière d'une dataframe dans une autre dataframe avec différentes structures dans Python? Comment copier efficacement la colonne entière d'une dataframe dans une autre dataframe avec différentes structures dans Python? Apr 01, 2025 pm 11:15 PM

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é par le navigateur lors de l'utilisation de Fiddler partout pour la lecture de l'homme au milieu? Comment éviter d'être détecté par le navigateur lors de l'utilisation de Fiddler partout pour la lecture de l'homme au milieu? Apr 02, 2025 am 07:15 AM

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 sans servir_forever ()? Comment Uvicorn écoute-t-il en permanence les demandes HTTP sans servir_forever ()? Apr 01, 2025 pm 10:51 PM

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 ...

Comment créer dynamiquement un objet via une chaîne et appeler ses méthodes dans Python? Comment créer dynamiquement un objet via une chaîne et appeler ses méthodes dans Python? Apr 01, 2025 pm 11:18 PM

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 ...

See all articles