[Python] Ejecutar comando y pasarle parámetros desde Python

Iniciado por davidhs, Septiembre 30, 2015, 08:27:31 PM

Tema anterior - Siguiente tema

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

Septiembre 30, 2015, 08:27:31 PM Ultima modificación: Diciembre 10, 2015, 01:59:47 PM por WhiZ
Hola a todos, de ante mano gracias a todos ya sea por leer la duda o responderla. Bueno quería exponer mi rompedura de cabeza, lo que quiero hacer es, recoger un dato el cual estará en una variable, esta variable ira junto a un comando, donde este comando al ejecutarse se ejecutará con el dato recogido, he conseguido hacer algo como esto pero no me funciona, si alguien me iluminase le estaría muy agradecido:

Código: python

               
                print "\t1 - Crear archivo .txt"
       
                menuNmap = raw_input("Inserta un numero ->")
               
                if menuFichero=="1":
               
                        fi = input("Ingresa el nombre para el fichero --->")
                       
                        import shlex, subprocess
                        command_line = ('sudo nano %s',%( fi))
                        args = shlex.split(command_line)
                        subprocess.call(args)


P.D: He acabado haciendo algo así, esto no me funciona, si alguien me ayudase se lo agradecería GRACIAS!
Un mundo construido sobre fantasía. Emociones sintéticas en forma de pastillas. Guerras psicológicas en forma de publicidad. Sustancias químicas que alteran la mente en forma de comida. Lavados de cerebro en forma de medios de comunicación. Agujas aisladas bajo control en forma de redes sociales.

Hola @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta! Te recomiendo crear y editar el fichero desde python. No sólo es más fácil sino que, además, es multipltaforma. Aquí va un ejemplo:

Código: python
nombre_archivo = raw_input("Ingresa el nombre del fichero")
escribir = True
with open(nombre_archivo, "w") as f:
    print " Ingrese el contenido (presione CTRL + C para finalizar)."
    while escribir:    # True
        try:
            contenido = raw_input(">>> ") + "\n"
            f.write(contenido)
        except KeyboardInterrupt:
            escribir = False    # break


En este caso, lo que hacemos es crear un archivo con el nombre ingresado por el usuario y, a continuación, crear un bucle que solicite el contenido del mismo. El usuario podrá escribir todas las líneas que quiera. Para detener la edición del archivo, sólo hay que presionar CTRL + C.

Espero que te sirva!

Saludos!
WhiZ


Hola @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, lo que busco es algo parecido a esto, Gracias por responder:

Código: python

menuNmap = raw_input("Inserta un valor ->")
               
                if menuNmap=="1":
               
                        ip = input("Ingresa el rango de IP's, x.x.x.x/24 --->")
                       
                        import shlex, subprocess
                        command_line = ('sudo nmap -sP %s',%( ip))
                        args = shlex.split(command_line)
                        subprocess.call(args)
                       
                        raw_input("Has pulsado instalar nmap...\npulsa una tecla para continuar")
                   


puede ser que no me explicase correctamente, pero gracias de todas maneras Whiz todos tus comentarios me han sido de gran ayuda,
Un mundo construido sobre fantasía. Emociones sintéticas en forma de pastillas. Guerras psicológicas en forma de publicidad. Sustancias químicas que alteran la mente en forma de comida. Lavados de cerebro en forma de medios de comunicación. Agujas aisladas bajo control en forma de redes sociales.

Creo que No tienes permitido ver los links. Registrarse o Entrar a mi cuenta te va a servir  ;)

Saludos!
WhiZ

P.D.: fijate que, en tu código, estás utilizando input para recibir un valor alfanumérico. Cambialo por raw_input.