파이썬의 argparse 라이브러리를 사용하여 처음 몇 개의 명령 줄 인수를 처리하여 다른 명령 줄 인수에 대한 선택 목록을 생성하고 싶습니다.Python argparse : 다른 인수를 추가하기 전에 특정 인수 처리
argparse가 예상하지 못한 추가 인수에 대해 불평하지 않고 처음 몇 개의 인수를 처리하려면 어떻게합니까 (나중에 추가 할 계획입니까?)?
예를 들어, 나는 그는 API의 사용 가능한 속성에 액세스하는 데 사용하는 명령 줄에서 사용자 이름과 암호를 유도 할 수있는 스크립트가 다음 세 번째 인수의 값을 제한하기 위해이 목록을 사용
을import argparse
parser = argparse.ArgumentParser()
parser.add_argument('username', help='Your username.')
parser.add_argument('password', help='Your password.')
args = parser.parse_args() # Error here because a third argument exists on the command-line
response = requests.get(
url='https://api.example.com/properties',
auth=(args.username, args.password)
)
parser.add_argument(
'property',
choices=response.json()['properties'], # Validates the input
help='The property you want to access.'
)
args = parser.parse_args()
나는 모든 인수를 한 번에 추가 한 다음 세 번째 인수를 직접 수동으로 유효화 할 수 있다는 것을 알고 있지만 기본적으로 argparse 라이브러리에서 요구하는 것을 수행 할 방법이 있는지 궁금합니다.
http://stackoverflow.com/questions/20165843/argparse-how-to-handle-variable-number-of-arguments-nargs에서 질문에 대한 답변을 확인 했습니까? –
'argparse'는 파서를 sugests로 이름입니다. 구문 분석 할 데이터를 확인하는 기능이 있지만이 확인에는 한계가 있습니다. HTTP 조회를 수행하는 것은이 한계를 벗어납니다. 코드에서해야합니다. 또한 사용자의 접근 방식이 자격 증명을 인수로 제공하지 않고 도움말을 표시 할 수는 없지만 사용자가 도움말을 볼 때까지는 방법을 알지 못한다고 생각하십시오. –
@ Chih-HsuJackLin 그것은 내 질문에 직접 대답하지 않지만, 받아 들인 대답 안에서 (필자가 알지 못했던)'parse_known_args()'함수의 사용을 볼 수 있는데, 나는 인수의 덩어리를 파싱하는데 사용할 수있다. 한 번에. @KlausD. 불완전한 도움말 문서에 대한 귀하의 요지를 봅니다. 한 번에 모든 인수를 추가하고 직접 검증 할 것입니다. 둘 다 고마워. – ezgoodey