elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Python] optparse
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Python] optparse  (Leído 5,331 veces)
Kasswed
Colaborador
***
Desconectado Desconectado

Mensajes: 5.295

Rolling Stones


Ver Perfil
[Python] optparse
« en: 18 Agosto 2009, 21:20 pm »

Holas.

Me gustaría obtener un poco de ayuda, he buscado en la documentación oficial pero no he visto nada al respecto (quizá me lo haya saltado con las prisas).

No sé si sabeis qué es optparse. Es un módulo de python que permite hacer el lanzamiento del programa más ameno, al estilo de los comandos. Además te brinda ayuda y tal. En fin, un lujo.

El caso es que quiero que por ejemplo una opción X sea obligatoria ponerla, y que cuando no se ponga salte un mensaje de error personalizado, pero que Y opciones no sean obligatorias sino optativas. Así, si tú tienes un script al que le puedes pasar la opción -o fichero, y la opción -b database, la opción -b sería obligatoria y la -o optativa (según tú indiques, claro), de forma que si haces:

Código:
./script.py -o output.log

Salte un mensaje diciendo algo como:

Código:
[ERROR] 'database' is required.

¿Alguien sabe cómo se haría?


En línea

"He who allows himself to be insulted, deserves to be."

Repórtame cualquier falta a las normas del foro por mensaje privado.
08l00D

Desconectado Desconectado

Mensajes: 168


Ver Perfil
Re: [Python] optparse
« Respuesta #1 en: 18 Agosto 2009, 21:41 pm »

No, optparse de por si trata todos los argumentos como opcionales no puedes poner que tal parametro sea obligatorio y tales otros no... todos son opcionales... por ahi eh visto que tocando un poco el code de una clase de ese modulo podias ponerle vos esa opcion, pero ya de por si optparse no te brinda soporte para lo que quieres.
Igualmente tenes dentro del standar a getopt que me parece que si lo podes hacer en la documentacion oficial hay documentacion acerca de el...

Saludos


En línea

Anibal784


Desconectado Desconectado

Mensajes: 762

Yo no la vote, pero me la tengo que aguantar igual


Ver Perfil WWW
Re: [Python] optparse
« Respuesta #2 en: 18 Agosto 2009, 23:25 pm »

Si, optparser puede tomar como todos los parámetros como optativos, pero seguro debe tener algún mecanismo para saber que alguna opción fue pasada, así si sería cuestión de preguntar y si no se recibió ese argumento, lanzar una excepción o mostrar el error y abortar.
En línea

El que llega sin que lo llamen, se va sin que lo echen.

Citar
Vos no la votaste por eso la tenes adentro.
Lo fino no es lo tuyo, y a mi me chupa un huevo, soy argentino y no peronista, y eso es lo que realmente te molesta.
Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: [Python] optparse
« Respuesta #3 en: 18 Agosto 2009, 23:30 pm »

Veamos si esto te sirve  ;)

:http://www.alexonlinux.com/pythons-optparse-for-human-beings#support_for_mandatory_%28required%29_options.

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Kasswed
Colaborador
***
Desconectado Desconectado

Mensajes: 5.295

Rolling Stones


Ver Perfil
Re: [Python] optparse
« Respuesta #4 en: 19 Agosto 2009, 00:41 am »

Si, optparser puede tomar como todos los parámetros como optativos, pero seguro debe tener algún mecanismo para saber que alguna opción fue pasada, así si sería cuestión de preguntar y si no se recibió ese argumento, lanzar una excepción o mostrar el error y abortar.

Bueno eso lo puedo hacer yo como bien dices de forma manual, poniendo un default, y si el valor es el mismo que el de default es porque la opción no se puso, pero yo decía por si optparse tenía algo ya implementado. En vista de que no supongo que habrá que hacerlo a mano, que tampoco supone tanto trabajo, pero en fin, me quedo con la puntillita de saber si optparse trae esa opción xD

Saludos!!!
En línea

"He who allows himself to be insulted, deserves to be."

Repórtame cualquier falta a las normas del foro por mensaje privado.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines