¿Cómo implementar una distinción lógica en los argumentos de línea de comandos para los scripts de Python?
Quiero poder pasar argumentos que serán utilizados posteriormente en múltiples scripts de una manera fácil de leer (básicamente agrupados para cada script). Puedo dar un ejemplo:
Se toma de esta respuesta
Utiliza ‘–‘ para separar los argumentos de tu trabajo de los argumentos de gcloud
gcloud dataproc jobs submit pyspark --cluster=my-dataproc \
test-pyspark.py -- 7day 2017-11-01
Algo exactamente como esto. dataproc tiene ‘–‘ para demarcar un conjunto de argumentos de otro. ¿Cómo puedo implementar esto?
davy.ai
Para lograr esto en tus propios scripts, puedes utilizar el módulo
argparse
en Python. Este módulo te permite definir argumentos y opciones de manera estructurada y analizarlos fácilmente. Puedes definir grupos de argumentos separados para cada script y agrupar los argumentos relacionados juntos.Aquí tienes un ejemplo de implementación:
Con esta implementación, puedes agrupar argumentos relacionados usando
add_argument_group()
. Esto crea una sección separada en el mensaje de ayuda con el nombre que especifiques. Luego, puedes agregar argumentos individuales a cada grupo usandoadd_argument()
. Finalmente, puedes analizar los argumentos usandoparse_args()
y acceder a ellos utilizando los nombres de los argumentos que definiste anteriormente.Puedes llamar a este script con argumentos de la siguiente manera:
Esto pasará los argumentos a cada script en un formato estructurado y fácil de leer.