을 회피 :파이썬 I는 다음과 같이 작동하는 프로그램이 argparse nargs 오류
prog.py filename -r
내게 주어진 기본 디폴트 값
prog.py filename -r 0 500 20
내가 관리했습니다 0, 500 and 20
을 사용을 사용 이것을 사용하여 달성하십시오 :
class RdistAction(argparse.Action):
def __call__(self,parser,namespace,values,option_string=None):
if not values:
setattr(namespace,self.dest,[0, 1000, 50])
else:
setattr(namespace,self.dest,values)
parser = argparse.ArgumentParser()
parser.add_argument("-r", "--rdist", action=RdistAction, nargs='*', type=int)
args = parser.parse_args()
그러나 원래 목표는 nargs를 3으로 설정하는 것이 었습니다. 위의 코드에서 nargs = 3을 사용하면 3 개의 인수가 필요하다는 오류 메시지가 나타납니다.
저는 주위를 둘러 보았습니다. 그리고 결과에서 을 추가하고 해당 기능에서 무언가를 수정해야한다고 내게 알려줍니다. nargs='*'
일 때 위 코드에서 얻은 결과와 동일한 결과를 얻을 수 있습니까? 대신 nargs=3
을 사용합니까? 내가 nargs='3'
을 위해 add_argument
라인을 변경하는 경우
'-r'을 전혀 제공하지 않으면 어떻게 될까요? – hpaulj
당신의 이전 질문 http://stackoverflow.com/q/42928410 – hpaulj
@hpaulj 내 프로그램은 이런 식으로 작동하고 파일 이름을 입력 한 다음 실행할 기능의 플래그를 입력하십시오. 단지 -r 일 때 rdist 함수는 표준 값으로 실행됩니다. 값과 함께 -r을 입력하면 rdist 함수가 해당 값으로 실행됩니다. 나는 새로운 질문으로 이것을 올릴 수 있었지만, 나의 질문은 커스텀 액션과 nargs 에러에 관한 것이었다. – AltoBalto