¿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

argparselugar deoptparse.Respuestas:
Para leer la entrada del usuario, puede probar el
cmdmódulo para crear fácilmente un mini intérprete de línea de comando (con textos de ayuda y autocompletado) yraw_input(inputpara 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, useoptparseargparseen 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_inputfue renombradoinputen Python 3.x - documentación aquíO para Python 3:
fuente
raw_input, es una función integrada.raw_inputya no está disponible en Python 3.x. Peroraw_inputfue 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
argparsemódulo.Use
raw_input()para obtener la entrada del usuario. Si importa,readline modulesus usuarios tendrán edición de línea e historial.fuente
Tenga cuidado de no usar la
inputfunción, a menos que sepa lo que está haciendo. A diferenciaraw_input,inputaceptará cualquier expresión de Python, por lo que es un poco comoevalfuente
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