Z argparsem Pythona, jak utworzyć podkomendę wymaganą argumentacją? Chcę to zrobić, ponieważ chcę argparse do błędu, jeśli nie określono podkomendy. Zastępuję metodę błędu, aby zamiast tego wydrukować pomoc. Mam podkomend zagnieżdżone 3-głęboko, więc nie jest to kwestia obsługi zero argumentów na najwyższym poziomie.argparse z wymaganymi podkomendami
W poniższym przykładzie, jeśli to się nazywa jak tak, to otrzymamy:
$./simple.py
$
Co chcę zrobić, zamiast dla argparse do skarżą się, że wymagane komenda nie została określona:
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()
Doskonale, tego właśnie potrzebowałem. Działa teraz świetnie, a ja będę uważać na poprawkę. – PonyEars