ho trovato la sintassi molto utilestdin Extra in Python con argparse
parser.add_argument('-i', '--input-file', type=argparse.FileType('r'), default='-')
per specificare un file di input o utilizzando standard input-entrambi i quali voglio nel mio programma. Tuttavia, il file di input non è sempre richiesto. Se io non sto usando -i
o il reindirizzamento di ingresso con uno dei
$ someprog | my_python_prog
$ my_python_prog < inputfile
io non voglio che il mio programma Python attendere per l'input. Voglio che passi e utilizzi i valori predefiniti.
So che ho detto questo sulla risposta precedente, ma questo è esattamente ciò che stavo cercando. Grazie. –
Sono assolutamente disorientato. OP ha detto che il file di input non è sempre stato richiesto. Allora, perché è specificato 'infile' prima? Perché questi sono comunque posizionali? Infine, perché diavolo non funzionerebbe il codice OP? Il tutorial 'argparse' sembra implicare che dovrebbe funzionare bene ... – 2rs2ts
@ 2rs2ts _why è' infile' specificato prima? _ - L'ordinamento particolare degli argomenti è solo una convenzione, di solito ci si aspetta che il primo argomento specifichi un input e secondo specificare l'output. _Perché questi sono comunque posizionali? _ - A causa delle preferenze dell'autore. Niente di male in questo uso di argomenti posizionali. Potrebbe essere un po 'imbarazzante da usare nello scenario quando si vuole leggere da stdin e scrivere in un file, ad esempio .app.py - outfile', ma a parte questo argomento posizionale funzionerebbe perfettamente. _Perché diamine non funzionerebbe il codice OP? _ - funziona davvero bene :) –