me encontré con la sintaxis muy útilentrada estándar opcional en Python con argparse
parser.add_argument('-i', '--input-file', type=argparse.FileType('r'), default='-')
para especificar un archivo de entrada o el uso de la entrada estándar, ambos de los cuales quiero en mi programa. Sin embargo, el archivo de entrada no siempre es obligatorio. Si no estoy usando -i
o redirección de la entrada con uno de
$ someprog | my_python_prog
$ my_python_prog < inputfile
no quiero que mi programa Python para esperar la entrada. Quiero que se mueva y use valores predeterminados.
Sé que dije esto sobre la respuesta anterior, pero _esto_ es _exactamente_ lo que estaba buscando. Gracias. –
Estoy absolutamente desconcertado. OP dijo que el archivo de entrada no siempre era necesario. Entonces, ¿por qué se especifica 'infile' primero? ¿Por qué son estos posicionales de todos modos? Por último, ¿por qué diablos no funcionaría el código de OP? El tutorial 'argparse' parece implicar que debería funcionar bien ... – 2rs2ts
@ 2rs2ts _¿por qué se especifica' infile' primero? _ - El orden particular de los argumentos es solo una convención, normalmente se espera que el primer argumento especifique una entrada y segundo, especifique la salida. _¿Por qué son estos posicionales de todos modos? _ - Debido a la preferencia del autor. No hay nada malo con este uso de argumentos posicionales. Puede ser un poco incómodo utilizarlo en el escenario cuando desee leer de stdin y escribir en un archivo, es decir, 'app.py - archivo_extensivo_ pero distinto de ese argumento posicional funcionaría muy bien. _¿Por qué diablos no funcionaría el código de OP? _ - en realidad funciona bien :) –