Con l'argparse di python, come posso rendere un sottocomando un argomento obbligatorio? Voglio farlo perché voglio argparse di errore se non viene specificato un sottocomando. Sostituisco il metodo di errore per stampare invece la guida. Ho sottocomandi nidificati a 3 profondità, quindi non si tratta semplicemente di gestire argomenti zero al livello più alto.argparse con i sottocomandi richiesti
Nell'esempio seguente, se questo si chiama in questo modo, ottengo:
$./simple.py
$
Quello che voglio fare è invece per argparse a lamentarsi che il sottocomando richiesta non è stato specificato:
import argparse
class MyArgumentParser(argparse.ArgumentParser):
def error(self, message):
self.print_help(sys.stderr)
self.exit(0, '%s: error: %s\n' % (self.prog, message))
def main():
parser = MyArgumentParser(description='Simple example')
subs = parser.add_subparsers()
sub_one = subs.add_parser('one', help='does something')
sub_two = subs.add_parser('two', help='does something else')
parser.parse_args()
if __name__ == '__main__':
main()
Eccellente, questo è quello di cui avevo bisogno. Funziona alla grande ora e guarderò la correzione del bug. – PonyEars