Múltiples argumentos en python argparse
Quiero que mi script pueda tomar varios argumentos con el mismo nombre.
python3 script.py --test test1 --test test2 --test test3 --config config_path
¿Cómo puedo lograr esto? Hasta ahora he intentado con nargs
de argparse.
<h1>Mi solución</h1>
<p>import argparse</p>
<p>parser = argparse.ArgumentParser(description='Arg Parser',
formatter<em>class=argparse.ArgumentDefaultsHelpFormatter,
allow</em>abbrev=False)</p>
<p>parser.add_argument('--test', nargs='+', required=True, \
help='Nombre de los módulos para comprobar', choices=['test1 ', 'test2 ', 'test3 '])</p>
<p>parser.add_argument('--config')</p>
<p>arg = parser.parse<em>args()</em>
<code>
Pero su comportamiento es un poco diferente, lo toma en la forma
</code>
python3 script.py --test test1 test2 --config config_path
¿Alguna sugerencia sobre cómo obtener el comportamiento deseado?
davy.ai
Para lograr el comportamiento deseado de tomar múltiples argumentos con el mismo nombre utilizando
argparse
, puedes usar la acción deappend
en lugar del parámetronargs
. Aquí tienes un ejemplo:Con este código, puedes ejecutar el script con múltiples argumentos
--test
:La acción de
append
creará una lista para el argumento--test
y añadirá cualquier nuevo valor a ella.