parse - getopt python ejemplo
¿Cómo usar getopt/OPTARG en Python? ¿Cómo cambiar los argumentos si se dan demasiados argumentos(9)? (3)
¿Cómo usar getopt / optarg en Python?
¿Has intentado leer los documentos de Python para el módulo getopt
( http://docs.python.org/library/getopt.html?highlight=getopt#module-getopt )? Proporciona un ejemplo simple de cómo se usa el getopt
. ¿Qué quiere decir con argumentos de cambio? Si desea verificar que el usuario no usa más de 9 argumentos, puede verificar la longitud de la lista sys.argv
, que contiene todas las opciones / argumentos pasados al script. El primer elemento es el nombre del script que se invoca, por lo que la longitud es siempre al menos 1. Podrías hacer algo como:
if len(sys.argv) > 10
print(''Too many arguments.'')
Este es un ejemplo de cómo lo hago, normalmente uso la misma plantilla básica:
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)
No creo que haya ningún límite de 9 parámetros.
Una búsqueda en google hubiera ayudado. Eche un vistazo a los módulos getopt y argparse en la biblioteca estándar:
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)
Luego ejecútalo como se espera:
$ 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)
Cuando se ejecuta con los argumentos apropiados, imprime la suma o el máximo de los enteros de la línea de comando:
$ prog.py 1 2 3 4
4
$ prog.py 1 2 3 4 --sum
10
Esto es directamente de la biblioteca estándar.