¿Cómo tengo un script de Python que a) puede aceptar la entrada del usuario y cómo lo hago b) leer en argumentos si se ejecuta desde la línea de comandos?
python
input
command-line-arguments
Teifion
fuente
fuente
argparse
lugar deoptparse
.Respuestas:
Para leer la entrada del usuario, puede probar el
cmd
módulo para crear fácilmente un mini intérprete de línea de comando (con textos de ayuda y autocompletado) yraw_input
(input
para Python 3+) para leer una línea de texto del usuario.Las entradas de la línea de comando están adentro
sys.argv
. Prueba esto en tu script:Hay dos módulos para analizar las opciones de la línea de comandos:
(en desuso desde Python 2.7, useoptparse
argparse
en su lugar) ygetopt
. Si solo desea ingresar archivos a su script, contemple el poder defileinput
.La referencia de la biblioteca de Python es tu amigo.
fuente
raw_input
fue renombradoinput
en Python 3.x - documentación aquíO para Python 3:
fuente
raw_input
, es una función integrada.raw_input
ya no está disponible en Python 3.x. Peroraw_input
fue renombradoinput
, por lo que existe la misma funcionalidad.Documentación del cambio.
fuente
import fileinput result=[] for line in fileinput.input(): result.append(line)
La mejor manera de procesar argumentos de línea de comandos es el
argparse
módulo.Use
raw_input()
para obtener la entrada del usuario. Si importa,readline module
sus usuarios tendrán edición de línea e historial.fuente
Tenga cuidado de no usar la
input
función, a menos que sepa lo que está haciendo. A diferenciaraw_input
,input
aceptará cualquier expresión de Python, por lo que es un poco comoeval
fuente
Este sencillo programa le ayuda a comprender cómo alimentar la entrada del usuario desde la línea de comandos y mostrar ayuda al pasar argumentos no válidos.
1) Para encontrar la raíz cuadrada de 5
2) Pasar argumento inválido que no sea número
fuente
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 por ejemplo
entonces puedes usar 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 comandos, use el módulo optparse.
Pev
fuente
Si está ejecutando Python <2.7, necesita optparse , que como explica el documento creará una interfaz para los argumentos de la línea de comandos que se invocan cuando se ejecuta su aplicación.
Sin embargo, en Python ≥2.7, optparse ha quedado en desuso y se reemplazó con el argumento arg como se muestra arriba. Un ejemplo rápido de los documentos ...
fuente
A partir de Python
3.22.7, ahora hay argumentos para procesar los argumentos de la línea de comandos.fuente
Si es una versión 3.x, simplemente use:
Por ejemplo, desea ingresar 8:
x será igual a 8 pero será una cadena excepto si la define de otra manera.
Para que pueda usar el comando de conversión, como:
fuente
En Python 2:
En Python 3:
fuente
fuente