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
'파이썬' 카테고리의 다른 글
파이썬 사전 : u '문자 제거 (0) | 2020.09.26 |
---|---|
파이썬 Os.Rename에서 강제 덮어 쓰기 (0) | 2020.09.26 |
파이썬 pymongo로 mongodb를 정렬하는 방법 (0) | 2020.09.26 |
파이썬 Python Itertools.Permutations () (0) | 2020.09.26 |
파이썬에서 공백에 문자열 분할 (0) | 2020.09.26 |
댓글