Uso il seguente codice semplice per analizzare alcuni argomenti; si noti che è richiesto uno di questi. Sfortunatamente, quando l'utente esegue lo script senza fornire l'argomento, il testo di utilizzo/guida visualizzato non indica che esiste un argomento non facoltativo, che trovo molto confuso. Come posso ottenere python per indicare che un argomento non è facoltativo?Argparse: argomenti richiesti elencati in "argomenti facoltativi"?
Ecco il codice:
import argparse
if __name__ == '__main__':
parser = argparse.ArgumentParser(
description='Foo')
parser.add_argument('-i','--input', help='Input file name', required=True)
parser.add_argument('-o','--output', help='Output file name', default="stdout")
args = parser.parse_args()
print ("Input file: %s" % args.input)
print ("Output file: %s" % args.output)
Quando si esegue sopra il codice senza fornire l'argomento obbligatorio, ottengo il seguente output:
usage: foo.py [-h] -i INPUT [-o OUTPUT]
Foo
optional arguments:
-h, --help show this help message and exit
-i INPUT, --input INPUT
Input file name
-o OUTPUT, --output OUTPUT
Output file name
In linea di utilizzo, la parte '-i INPUT' non è circondato da parentesi quadre, che indica che sottigliezza è infatti richiesto.Inoltre, puoi spiegarlo manualmente tramite il parametro 'help' –
@JaimeRGP Sì, ma questo non è sufficiente, ovviamente, ed è anche meno importante. Il nome di gruppo assegnato 'argomenti facoltativi' per gli argomenti richiesti è ancora fuorviante. –