Entrada de línea de comando en Python

¿Es posible ejecutar primero el progtwig y luego esperar la entrada del usuario en la línea de comandos? p.ej

Run... Process... Input from the user(in command line form)... Process... 

No está del todo claro qué quiso decir el OP (incluso después de algunos comentarios de ida y vuelta en los comentarios), pero aquí hay dos respuestas a las posibles interpretaciones de la pregunta:

Para entrada de usuario interactiva (o comandos canalizados o entrada redirigida)

Use raw_input en Python 2.x, e input en Python 3. (Están incorporados, por lo que no necesita importar nada para usarlos; solo debe usar el correcto para su versión de python).

Por ejemplo:

 user_input = raw_input("Some input please: ") 

Más detalles se pueden encontrar aquí .

Así, por ejemplo, es posible que tenga un script que se parece a esto

 # First, do some work, to show -- as requested -- that # the user input doesn't need to come first. from __future__ import print_function var1 = 'tok' var2 = 'tik'+var1 print(var1, var2) # Now ask for input user_input = raw_input("Some input please: ") # or `input("Some...` in python 3 # Now do something with the above print(user_input) 

Si guardó esto en foo.py , simplemente podría llamar al script desde la línea de comandos, se imprimiría tok tiktok , y luego pedirle una entrada. Usted podría ingresar bar baz (seguido de la tecla enter) e imprimiría bar baz . Esto es lo que se vería así:

 $ python foo.py tok tiktok Some input please: bar baz bar baz 

Aquí, $ representa el indicador de la línea de comandos (por lo que en realidad no lo escribes), y presiono Enter después de escribir bar baz cuando solicitó la entrada.

Para argumentos de línea de comando

Supongamos que tienes un script llamado foo.py y quieres llamarlo con la bar argumentos y baz desde la línea de comandos como

 $ foo.py bar baz 

(De nuevo, $ representa el indicador de la línea de comandos). Luego, puede hacerlo con lo siguiente en su script:

 import sys arg1 = sys.argv[1] arg2 = sys.argv[2] 

Aquí, la variable arg1 contendrá la cadena 'bar' , y arg2 contendrá 'baz' . El objeto sys.argv es solo una lista que contiene todo desde la línea de comandos. Tenga en cuenta que sys.argv[0] es el nombre del script. Y si, por ejemplo, solo desea una lista única de todos los argumentos, debe usar sys.argv[1:] .

Sólo tomando entrada

 the_input = raw_input("Enter input: ") 

Y eso es.

Además, si desea hacer una lista de entradas, puede hacer algo como:

 a = [] for x in xrange(1,10): a.append(raw_input("Enter Data: ")) 

En ese caso, se le solicitarán datos 10 veces para almacenar 9 elementos en una lista.

Salida:

 Enter data: 2 Enter data: 3 Enter data: 4 Enter data: 5 Enter data: 7 Enter data: 3 Enter data: 8 Enter data: 22 Enter data: 5 >>> a ['2', '3', '4', '5', '7', '3', '8', '22', '5'] 

Puede buscar esa lista de la manera fundamental con algo como (después de hacer esa lista):

 if '2' in a: print "Found" 

else: print “No encontrado”.

Puede reemplazar ‘2’ con “raw_input ()” de esta manera:

 if raw_input("Search for: ") in a: print "Found" else: print "Not found" 

Tomar datos sin procesar del archivo de entrada a través de la interfaz de línea de comandos

Si desea tomar la entrada de un archivo que alimenta a través de la línea de comandos (que normalmente es lo que necesita cuando hace problemas de código para competiciones, como Google Code Jam o ACM / IBM ICPC):

example.py

 while(True): line = raw_input() print "input data: %s" % line 

En la interfaz de línea de comandos:

 example.py < input.txt 

Espero que ayude.

Si estás usando Python 3, raw_input ha cambiado a input

Ejemplo de Python 3:

 line = input('Enter a sentence:') 

Comience su guión con la siguiente línea. La secuencia de comandos se ejecutará primero y luego aparecerá el indicador de comando de python. En este punto, todas las variables y funciones estarán disponibles para uso interactivo e invocaciones.

#! / usr / bin / env python -i