Comment utiliser getOPT / Optarg dans Python? Comment déplacer des arguments si trop d'arguments (9) sont donnés?

StackOverflow https://stackoverflow.com/questions/6382804

  •  28-10-2019
  •  | 
  •  

Question

Comment utiliser getOPT / Optarg dans Python?

Était-ce utile?

La solution

Ceci est un exemple de la façon dont je le fais, j'utilise généralement le même modèle de base:

import sys
import getopt

try:
    opts, args = getopt.getopt(sys.argv[1:], 'm:p:h', ['miner=', 'params=', 'help'])
except getopt.GetoptError:
    usage()
    sys.exit(2)

for opt, arg in opts:
    if opt in ('-h', '--help'):
        usage()
        sys.exit(2)
    elif opt in ('-m', '--miner'):
        miner_name = arg
    elif opt in ('-p', '--params'):
        params = arg
    else:
        usage()
        sys.exit(2)

Je ne pense pas qu'il y ait une limite de 9 paramètres.

Autres conseils

Une recherche Google aurait aidé. Jetez un œil au getopt et argparse Modules dans la bibliothèque standard:

import argparse

parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('integers', metavar='N', type=int, nargs='+',
                   help='an integer for the accumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const',
                   const=sum, default=max,
                   help='sum the integers (default: find the max)')

args = parser.parse_args()
print args.accumulate(args.integers)

Ensuite, exécutez-le comme prévu:

$ prog.py -h
usage: prog.py [-h] [--sum] N [N ...]

Process some integers.

positional arguments:
 N           an integer for the accumulator

optional arguments:
 -h, --help  show this help message and exit
 --sum       sum the integers (default: find the max)

Lors de l'exécution avec les arguments appropriés, il imprime la somme ou le maximum des entiers de ligne de commande:

$ prog.py 1 2 3 4
4

$ prog.py 1 2 3 4 --sum
10

Ceci est directement à partir de la bibliothèque standard.

Avez-vous essayé de lire les documents Python pour le module getopt (http://docs.python.org/library/getopt.html?highlight=getopt#module-getopt)? Il fournit un exemple simple de la façon dont le getopt est utilisé. Qu'entendez-vous par arguments de quart? Si vous souhaitez vérifier que l'utilisateur n'utilise pas plus de 9 arguments, vous pouvez vérifier la durée du sys.argv Liste, qui contient toutes les options / arguments transmis au script. Le premier élément est le nom du script qui est invoqué, donc la longueur est toujours au moins 1. Vous pouvez faire quelque chose comme:

if len(sys.argv) > 10
    print('Too many arguments.')
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top