2015-01-06 1 views
0

읽을 수있는 argparse 인수 그래서 argparse 매우 좋다고 생각하지만 어떻게 argparse/python에서 이런 일을 할 수 있습니까? 예를 들어- 또는 -

:

myprog del <username> (remove only config entry) 
myprog del -A <username> (remove all of the user...) 
myprog add <username> (must be 1 sub-arg, not more) 
myprog change <old-username> <to-new-username> (must be 2 sub-args, not more) 
myprog list (no sub argument) 
myprog list -A (list ALL) 
+0

[하위 명령] (https://docs.python.org/3/library/argparse.html#sub-commands)을 사용해 보았습니까? – Evert

답변

0

parser = argparse.ArgumentParser(prog='PROG') 
... 
subparsers = parser.add_subparsers(dest='cmd', help='sub-command help') 

# create the parser for the "a" command 
parser_a = subparsers.add_parser('del', help='a help') 
parser_a.add_argument('username', ...) 
parser_a.add_argument('-A', type='store_true') 

# create the parser for the "b" command 
parser_b = subparsers.add_parser('add', help='b help') 
parser_b.add_argument('username') 

# change gets 2 positionals 
# list gets one -A 
.... 
args = parser.parse_args() 
if args.cmd == 'del': 
    # delete args.username 
.... 

args.cmd 당신을 알려주는 문서에서 예제를 적응하여 subparsers

https://docs.python.org/3/library/argparse.html#sub-commands

에 대한 정직의 경우처럼 보이는 명령이 주어졌다. 엔. 설명서 (및 기타 SO 질문)는 각 명령에 함수를 연관시키는 방법을 보여줍니다.