tutorial script interprete instalar ejecutar desde consola comandos archivos archivo python command-line input python-2.7 user-input

script - Entrada de línea de comando en Python



interprete de python (4)

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

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


Solo 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 así como (después de hacer esa lista):

if ''2'' in a: print "Found"

else: imprime "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 brutos del archivo de entrada a través de la interfaz de línea de comando

Si desea tomar la información de un archivo que ingresa a través de la línea de comando (que normalmente es lo que necesita al hacer problemas de código para competiciones, como Google Code Jam o el ACM / IBM ICPC):

example.py

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

En la interfaz de línea de comando:

example.py < input.txt

Espero que ayude.


Comience su script con la siguiente línea. La secuencia de comandos se ejecutará primero y luego obtendrá el símbolo del sistema de python. En este punto, todas las variables y funciones estarán disponibles para uso interactivo e invocaciones.

#! / usr / bin / env python -i


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

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

Utilice raw_input en Python 2.x e input en Python 3. (Estos están integrados, por lo que no necesita importar nada para usarlos, solo tiene que usar el correcto para su versión de python).

Por ejemplo:

user_input = raw_input("Some input please: ")

Más detalles se pueden encontrar here .

Entonces, 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 , podría simplemente llamar al script desde la línea de comando, imprimiría tok tiktok , y luego le pediría entrada. Podrías 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 comando (por lo que en realidad no escribe eso), y presiono Enter después de escribir bar baz cuando solicitó entrada.

Para argumentos de línea de comandos

Supongamos que tiene un script llamado foo.py y quiere llamarlo con argumentos bar y baz desde la línea de comando como

$ foo.py bar baz

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

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 comando. Tenga en cuenta que sys.argv[0] es el nombre del script. Y si, por ejemplo, solo quiere una lista única de todos los argumentos, usaría sys.argv[1:] .


Si está usando Python 3, raw_input ha cambiado para input

Ejemplo de Python 3:

line = input(''Enter a sentence:'')