[SOLUCIONADO] Argumentos múltiples

Iniciado por lokitorz, Junio 22, 2013, 10:36:40 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Junio 22, 2013, 10:36:40 AM Ultima modificación: Julio 24, 2014, 12:35:36 AM por Expermicid
Buenas,
Estoy desarrollando un script al cual se le pasan argumentos desde consola y me surge un problema al pasarle varios argumentos para una misma opción.
Por ejemplo:
python No tienes permitido ver los links. Registrarse o Entrar a mi cuenta -v 10  --> el 10 si se recogerlo el problema viene cuando..
python No tienes permitido ver los links. Registrarse o Entrar a mi cuenta -v 10, 13 --> ¿como recojo ese 13?

con sys.argv no me vale puesto que no se en que posición va a estar es decir, algunas veces puede estar en otra posición o no estar. ejemplo
python No tienes permitido ver los links. Registrarse o Entrar a mi cuenta -f -w -v 10, 13
python No tienes permitido ver los links. Registrarse o Entrar a mi cuenta -w

Hasta ahora lo estaba haciendo con opts, args = getopt.getopt() pero solo me funciona si le paso uno solo no una cadena.

¿Alguien sabe como hacerlo?

Muchas gracias de antemano.
 

puedes iterar sobre sys.argv y luego validar los parametros tomados. Con la iteracion obtendrias todos los parametros y luego la validacion si o si va a ser necesario por lo que dices que un parametro puede como no estar.

Eso lo estoy haciendo con
for opt, arg in opts: 
       if opt in ("-p", "--port"):
            port = arg


pero solo almacena el primero que le paso, es decir
python No tienes permitido ver los links. Registrarse o Entrar a mi cuenta -v 10, 13 --> solo me almacena el 10

Código: python
import sys

for elements in sys.argv :
print elements


Y asi?

Podrías probar con el módulo parser. Está muy bueno para manejar los argumentos.

Saludos!
WhiZ


Quieres hacerlo fijo  ?

Para ahcer uso de getopt  tiene que ser asi

Código: python
opts, args = getopt.getopt(argv, "param1:", "h", "J", "param2"])
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Llaman traidor a la persona que evito que caiga el foro, gente bruta!



Hay un modulo llamado argparse ese creo que es la evolucion del getopt yo lo utilizé pero no supe implementarlo bien, es decir: me funcionó pero despues quize meterle mas opciones y ta no pude :p

Para ahcer uso de getopt  tiene que ser asi

Código: python
opts, args = getopt.getopt(argv, "param1:", "h", "J", "param2"])

[/quote]

Yo el código que tengo es

opts, args = getopt.getopt(sys.argv[1:], "hwp:", ["help","port="])
for opt, arg in opts:
        if opt in ("-h", "--help"): prueba.use()
        if opt in ("-p", "--port"):
            port = arg


eso con python No tienes permitido ver los links. Registrarse o Entrar a mi cuenta -v 10, 13 --> coge sin problema el 10 pero el 13 no

El módulo parser no lo he probado, buscaré su uso.

Supongo que se podria hacer con el
for elements in sys.argv :
        print elements


y comprobar si hay una ","

Muchas gracias.

Un saludo


           

 ;D ese tu code no es tuyo :P lo sacaste de un blog en este momento no me acuerdo donde va  asi que mejor revisa nuevamente ..

Regards,
Snifer
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Llaman traidor a la persona que evito que caiga el foro, gente bruta!



¿Como que no es mio? es el uso básico de getopt (al menos siempre lo usé así)

Saludos.

Trololllolololo me equivoque al responder de post :P xDDDD acabo de hacer  la prueba respectiva y me da perfectamente :S ..

Version de Python?
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Llaman traidor a la persona que evito que caiga el foro, gente bruta!



xDD . Version 2.7

¿Te ha funcionado bien? ¿Como lo has hecho?

Gracias, un saludo.

Mira lee un poco de esto lo cual te servira si aun asi no puedes te digo  como va la cosa:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Regards,
Snifer
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Llaman traidor a la persona que evito que caiga el foro, gente bruta!



Muchas gracias, voy a mirarlo y te comento.

Un saludo!

llámame torpe si quieres pero sigo sin conseguirlo  :(
el argparse no comprendo su uso y con el getopt solo consigo recoger el primero.

Un saludo.