valor utiliza usuario teclado script resultado qué que por pedir parametros para numero linea ingresar función español ejecutar consola con comandos python input command-line-arguments

python - utiliza - Argumentos de entrada de usuario y línea de comando



qué función de python se utiliza para el resultado de la consola (11)

¿Cómo tengo una secuencia de comandos de Python que a) puede aceptar la entrada del usuario y cómo puedo hacer que b) lea los argumentos si se ejecuta desde la línea de comandos?


A partir de Python 3.2 2.7, ahora hay argparse para procesar argumentos de línea de comando.


En Python 2:

data = raw_input(''Enter something: '') print data

En Python 3:

data = input(''Enter something: '') print(data)


Este sencillo programa lo ayuda a comprender cómo alimentar la entrada del usuario desde la línea de comandos y mostrar ayuda para pasar un argumento no válido.

import argparse import sys try: parser = argparse.ArgumentParser() parser.add_argument("square", help="display a square of a given number", type=int) args = parser.parse_args() #print the square of user input from cmd line. print args.square**2 #print all the sys argument passed from cmd line including the program name. print sys.argv #print the second argument passed from cmd line; Note it starts from ZERO print sys.argv[1] except: e = sys.exc_info()[0] print e

1) Encontrar la raíz cuadrada de 5.

C:/Users/Desktop>python -i emp.py 5 25 [''emp.py'', ''5''] 5

2) Pasar argumento no válido distinto del número

C:/Users/bgh37516/Desktop>python -i emp.py five usage: emp.py [-h] square emp.py: error: argument square: invalid int value: ''five'' <type ''exceptions.SystemExit''>


La mejor manera de procesar los argumentos de la línea de comando es el módulo argparse .

Utilice raw_input() para obtener la entrada del usuario. Si importa el readline module sus usuarios tendrán edición de línea e historial.


Para leer las entradas del usuario, puede probar el módulo cmd para crear fácilmente un mini intérprete de línea de comandos (con textos de ayuda y autocompletar) y raw_input ( input para Python 3+) para leer una línea de texto del usuario.

text = raw_input("prompt") # Python 2 text = input("prompt") # Python 3

Las entradas de línea de comando están en sys.argv . Prueba esto en tu guión:

import sys print (sys.argv)

Hay dos módulos para analizar las opciones de la línea de comandos: optparse (en desuso desde Python 2.7, use argparse en argparse lugar) y getopt . Si solo desea ingresar archivos a su script, contemple el poder de la fileinput de fileinput .

La referencia de la biblioteca de Python es tu amigo.


Si es una versión 3.x, simplemente usa:

variantname = input()

Por ejemplo, quieres ingresar 8:

x = input() 8

x será igual a 8 pero será una cadena, excepto si lo define de otra manera.

Así que puedes usar el comando de conversión, como:

a = int(x) * 1.1343 print(round(a, 2)) # ''9.07'' 9.07


Si está ejecutando Python <2.7, necesita optparse , lo que, tal como lo explica el documento, creará una interfaz para los argumentos de la línea de comandos a los que se llama cuando se ejecuta su aplicación.

Sin embargo, en Python ≥2.7, optparse ha quedado en desuso y se reemplazó con el argparse como se muestra arriba. Un rápido ejemplo de la documentación ...

El siguiente código es un programa de Python que toma una lista de enteros y produce la suma o el máximo:

import argparse parser = argparse.ArgumentParser(description=''Process some integers.'') parser.add_argument(''integers'', metavar=''N'', type=int, nargs=''+'', help=''an integer for the accumulator'') parser.add_argument(''--sum'', dest=''accumulate'', action=''store_const'', const=sum, default=max, help=''sum the integers (default: find the max)'') args = parser.parse_args() print args.accumulate(args.integers)


Tenga cuidado de no utilizar la función de input , a menos que sepa lo que está haciendo. A diferencia de raw_input , la input aceptará cualquier expresión de python, por lo que es un poco como eval


Use ''raw_input'' para la entrada desde una consola / terminal.

si solo desea un argumento de línea de comando como un nombre de archivo o algo así, por ejemplo

$ python my_prog.py file_name.txt

entonces puedes usar sys.argv ...

import sys print sys.argv

sys.argv es una lista donde 0 es el nombre del programa, por lo que en el ejemplo anterior sys.argv [1] sería "file_name.txt"

Si desea tener opciones completas en la línea de comando, use el módulo optparse.

Pev


raw_input ya no está disponible en Python 3.x. Pero raw_input fue renombrada como input , por lo que existe la misma funcionalidad.

input_var = input("Enter something: ") print ("you entered " + input_var)

Documentación del cambio.


var = raw_input("Please enter something: ") print "you entered", var

O para Python 3:

var = input("Please enter something: ") print("You entered " + str(var))