
argparse.ArgumentParser()importargparseparser객체=argparse.ArgumentParser()parser객체.add_argument(...)

description, epilogparser=argparse.ArgumentParser(description=" ",epilog="%(prog)s")
객체.add_argument()'-<opt>'parser = argparse.ArgumentParser()
parser.add_argument('-l', dest='length')
args = parser.parse_args()
pkg_dir = args.length
'--<option>'parser = argparse.ArgumentParser()
parser.add_argument('-l','--length')
args = parser.parse_args()
pkg_dir = args.length
'Arg'parser = argparse.ArgumentParser()
parser.add_argument('packagesdir')
args = parser.parse_args()
pkg_dir = args.packagesdir

import argparse
def parsing():
parser = argparse.ArgumentParser()
parser.add_argument("-g", "--graph", help="create graph", action="count")
args=parser.parse_args()
print(args.graph)
parser = argparse.ArgumentParser()
parser.add_argument('packagesdir')
args = parser.parse_args()
pkg_dir = args.packagesdir


args.target에 Argument가 저장된다.True를 대입하고 지정하지 않으면 False 를 대입


parser = argparse.ArgumentParser()
parser.add_argument('--checksum', action='append', dest='checksum', choices=['md5', 'sha256'])
args = parser.parse_args()
checksum = args.checksum if args.checksum else ['md5']
# ==== 출력 ==== #
usage: <prorgam> [--checksum {md5,sha256}]

import argparse
parser=argparse.ArgumentParser()
parser.add_argument('-G', help="app args 7", default=None)
args=parser.parse_args()
G = args.G == None if None else args.G
metavar
-h시, 위와 같이 표현된다.
nargsnargs 키워드 인자는 다른 수의 명령행 인자를 하나의 액션으로 연결한다.정수: 명령행에서 정수 개의 인자를 모아서 리스트에 넣는다.parser = argparse.ArgumentParser()
parser.add_argument('--foo', nargs=2)
parser.add_argument('bar', nargs=1)
parser.parse_args('c --foo a b'.split())
Namespace(bar=['c'], foo=['a', 'b'])nargs=1은 하나의 항목을 갖는 리스트를 생성한다.?. 가능하다면, 한 인자가 명령행에서 소비되고, 단일 항목으로 생성된다.default 값이 생성된다.- 옵션 문자열은 있지만, 명령행 인자가 따라붙지 않는 경우이다. 이 경우 const 값이 생성된다.parser = argparse.ArgumentParser()
parser.add_argument('--foo', nargs='?', const='c', default='d')
parser.add_argument('bar', nargs='?', default='d')
parser.parse_args(['XX', '--foo', 'YY'])
Namespace(bar='XX', foo='YY')
parser.parse_args(['XX', '--foo'])
Namespace(bar='XX', foo='c')
Parser.parse_args([])
Namespace(bar='d', foo='d')
nargs='?' 의 흔한 사용법 중 하나는 선택적 입출력 파일을 허용하는 것입니다:parser = argparse.ArgumentParser()
parser.add_argument('infile', nargs='?', type=argparse.FileType('r'),
default=sys.stdin)
parser.add_argument('outfile', nargs='?', type=argparse.FileType('w'),
default=sys.stdout)
parser.parse_args(['input.txt', 'output.txt'])
Namespace(infile=<_io.TextIOWrapper name='input.txt' encoding='UTF-8'>,
outfile=<_io.TextIOWrapper name='output.txt' encoding='UTF-8'>)
parser.parse_args([])
Namespace(infile=<_io.TextIOWrapper name='<stdin>' encoding='UTF-8'>,
outfile=<_io.TextIOWrapper name='<stdout>' encoding='UTF-8'>)
*: 모든 명령행 인자를 리스트로 수집한다.nargs='*'를 사용하는 것은 별로 의미가 없지만,nargs='*'를 여러 개의 선택 인자는 가능하다.parser = argparse.ArgumentParser()
parser.add_argument('--foo', nargs='*')
parser.add_argument('--bar', nargs='*')
parser.add_argument('baz', nargs='*')
parser.parse_args('a b --foo x y --bar 1 2'.split())
Namespace(bar=['1', '2'], baz=['a', 'b'], foo=['x', 'y'])

'+' '*' 와 같이, 존재하는 모든 명령행 인자를 리스트로 모읍니다. 또한, 적어도 하나의 명령행 인자가 제공되지 않으면 에러 메시지가 만들어집니다. 예를 들면:
parser = argparse.ArgumentParser(prog='PROG')
parser.add_argument('foo', nargs='+')
parser.parse_args(['a', 'b'])
Namespace(foo=['a', 'b'])
parser.parse_args([])
usage: PROG [-h] foo [foo ...]
PROG: error: the following arguments are required: foo
nargs 키워드 인자가 제공되지 않으면, 소비되는 인자의 개수는 action 에 의해 결정됩니다. 일반적으로 이는 하나의 명령행 인자가 소비되고 하나의 항목(리스트가 아닙니다)이 생성됨을 의미합니다.
Usage: program [-v | -q] : -v나 -q 중 둘 중 하나만 사용
import argparse
parser = argparse.ArgumentParser()
group = parser.add_mutually_exclusive_group()
group.add_argument("-v", "--verbose", action="store_true")
group.add_argument("-q", "--quiet", action="store_true")
args=parser.parse_args()args라는 Namespace에 자동으로 파싱된 args들이 담긴다.
--build-no 옵션의 Namespace가 args.build_no로 저장된다.#!/usr/bin/python3
import argparse
def parsing():
parser = argparse.ArgumentParser()
parser.add_argument("-s", "--scenario", help="Execute scenario", required=True)
args = parser.parse_args()
print(args.scenario)
if __name__ == "__main__" :
parsing()
group을 활용하여, dry-run, required 중 하나 사용하기
객체.add_subparsers: 서브커맨드import argparse
parser = argparse.ArgumentParser(description="OpenEmbedded pkgdata tool",\
epilog="Use %(prog)s <subcommand> --help to get help on a specific command")
subparsers = parser.add_subparsers(title='subcommands', metavar='<subcommand>')


