반응형
argparse 모듈 인수없이 옵션을 추가하는 방법은 무엇입니까?
을 사용하여 스크립트를 만들었습니다 argparse
.
스크립트는 옵션으로 구성 파일 이름을 가져와야하며 사용자는 스크립트를 완전히 진행해야하는지 아니면 시뮬레이션 만할지 지정할 수 있습니다.
전달할 인수 : ./script -f config_file -s
또는 ./script -f config_file
.
-f config_file 부분에는 문제가 없지만, 선택적이고 뒤 따르지 않아야하는 -s에 대한 인수를 계속 묻습니다.
나는 이것을 시도했다 :
parser = argparse.ArgumentParser()
parser.add_argument('-f', '--file')
#parser.add_argument('-s', '--simulate', nargs = '0')
args = parser.parse_args()
if args.file:
config_file = args.file
if args.set_in_prod:
simulate = True
else:
pass
다음과 같은 오류가 있습니다.
File "/usr/local/lib/python2.6/dist-packages/argparse.py", line 2169, in _get_nargs_pattern
nargs_pattern = '(-*%s-*)' % '-*'.join('A' * nargs)
TypeError: can't multiply sequence by non-int of type 'str'
그리고 ''
대신에 같은 errror 0
.
로 @Felix 클링 제안 을 사용 action='store_true'
:
>>> from argparse import ArgumentParser
>>> p = ArgumentParser()
>>> _ = p.add_argument('-f', '--foo', action='store_true')
>>> args = p.parse_args()
>>> args.foo
False
>>> args = p.parse_args(['-f'])
>>> args.foo
True
설정된 값이 필요없는 옵션을 만들려면 action
[문서] 로 그것을를 'store_const'
, 'store_true'
또는 'store_false'
.
예:
parser.add_argument('-s', '--simulate', action='store_true')
참고 URL : https://stackoverflow.com/questions/5262702/argparse-module-how-to-add-option-without-any-argument
반응형
'Programing' 카테고리의 다른 글
탭 또는 창 사이의 통신 (0) | 2020.06.24 |
---|---|
존재하지 않는 경우 PostgreSQL 테이블 생성 (0) | 2020.06.24 |
Android Studio에서 build.gradle에 외부 프로젝트 추가 (0) | 2020.06.24 |
"관리되는"과 "관리되지 않는"의 차이점 (0) | 2020.06.24 |
SQL Server의 열 추가 문에서 명명 된 기본 제약 조건을 만들 수 있습니까? (0) | 2020.06.24 |