본문 바로가기
파이썬

파이썬 Python에서 'argparse.ArgumentError'사용

by º기록 2020. 9. 26.
반응형

Python의 argparse 모듈에서 ArgumentError 예외를 사용하고 싶지만 사용 방법을 알 수 없습니다. 서명은 ArgumentError (argument, message) 로 호출되어야한다고 말했지만 argument 가 무엇인지 알 수 없습니다. 파서 객체의 일부 여야한다고 생각하지만 이에 대한 문서를 찾을 수 없습니다.

 

해결 방법

 


ArgumentError : 파서의 작업에 오류가있을 때 ArgumentParser 객체에서 발생하는 예외입니다. 명령 줄을 구문 분석하는 동안 발생한 오류는 ArgumentParser에 의해 포착되고 명령 줄 메시지로 내 보냅니다.

생성자의 argument 매개 변수는 예외가 발생하는 Action 객체입니다. 일반적으로 Action 서브 클래스 외부에서 발생시킬 필요가 없으며 서브 클래 싱 할 때 명시 적으로 발생시킬 필요가 없습니다. 일반적으로 대신 ValueError (또는 적절한 것)를 발생시킵니다.

귀하의 의견과 관련하여 0과 1 사이의 부동 소수점 값만 허용하고 싶습니다.이를 위해 사용자 정의 유형을 정의하는 기능을 사용해야합니다. 예를 들어 다음과 같이 할 수 있습니다.

def percentFloat (string):
    value = float(string)
    if value < 0 or value > 1:
        raise argparse.ArgumentTypeError('Value has to be between 0 and 1')
    return value

parser = argparse.ArgumentParser()
parser.add_argument('test', type=percentFloat)
parser.parse_args()



매개 변수 종속성은 실제로 파서 인수로 수행해야하는 것이 아닙니다. 의미 론적 세부 사항의 경우 대신 직접 수행해야합니다.

args = parser.parse_args()
if args.w and not args.p:
    parser.error('-p is required when -w is set.')


그러나 물론 이러한 기본적인 상황에서는 가능하다면 -p 를 암시 적으로 추측하는 것이 훨씬 더 합리적입니다.

 

참조 페이지 https://stackoverflow.com/questions/8107713

 

 

반응형

댓글