[파이썬] argparse 인수의 action 속성 종류

argparse는 Python의 표준 라이브러리로, 명령 줄 인수를 편리하게 구문 분석할 수 있는 기능을 제공합니다. argparse를 사용하여 명령 줄 인수를 처리할 때, action 속성을 사용하여 인수를 어떻게 처리할지 지정할 수 있습니다. action 속성은 다양한 방식으로 인수를 처리하고 해당 인수를 어떻게 저장할지를 정의할 수 있습니다.

다음은 argparse에서 제공하는 주요 action 속성의 종류입니다.

1. ‘store’

store는 기본적인 action 속성으로, 인수 값을 그대로 저장합니다. 이는 argparse의 기본 동작입니다.

예를 들어, 다음과 같이 store를 사용하여 인수 값을 저장할 수 있습니다:

import argparse

# 파서 생성
parser = argparse.ArgumentParser()
# 인수 추가
parser.add_argument('--name', action='store')
# 입력된 인수 파싱
args = parser.parse_args()
# 인수 값 출력
print(args.name)

위의 예제에서는 --name이라는 옵션을 사용하여 프로그램에 값을 전달하고, 이 값을 args.name으로 저장합니다.

2. ‘store_true’와 ‘store_false’

store_truestore_false는 불리언 값으로 인수를 저장합니다. store_true는 옵션을 사용할 경우 True를, 옵션을 사용하지 않을 경우 False를 저장하며, store_false는 그 반대입니다.

예를 들어, 다음과 같이 store_truestore_false를 사용하여 불리언 값을 저장할 수 있습니다:

import argparse

# 파서 생성
parser = argparse.ArgumentParser()
# 인수 추가
parser.add_argument('--verbose', action='store_true')
# 입력된 인수 파싱
args = parser.parse_args()
# 인수 값 출력
print(args.verbose)

위의 예제에서는 --verbose라는 옵션을 사용하여 프로그램을 실행할 때, args.verboseTrue값이 저장되며, 옵션을 사용하지 않을 경우 args.verboseFalse값이 저장됩니다.

3. ‘append’

append는 여러 개의 인수 값을 리스트로 저장합니다. 이 속성을 사용하면 같은 옵션을 여러 번 사용할 수 있습니다.

예를 들어, 다음과 같이 append를 사용하여 여러 개의 인수 값을 저장할 수 있습니다:

import argparse

# 파서 생성
parser = argparse.ArgumentParser()
# 인수 추가
parser.add_argument('--numbers', action='append')
# 입력된 인수 파싱
args = parser.parse_args()
# 인수 값 출력
print(args.numbers)

위의 예제에서는 --numbers라는 옵션을 여러 번 사용하여 여러 개의 값을 입력할 수 있습니다. 이 때, 입력된 값들은 args.numbers에 리스트로 저장됩니다.

4. ‘count’

count는 특정 옵션을 몇 번 사용했는지를 세어서 저장합니다. 이를 통해 프로그램 실행 중 옵션 사용 횟수에 따라 다른 동작을 수행할 수 있습니다.

예를 들어, 다음과 같이 count를 사용하여 옵션 사용 횟수를 저장할 수 있습니다:

import argparse

# 파서 생성
parser = argparse.ArgumentParser()
# 인수 추가
parser.add_argument('--verbose', action='count')
# 입력된 인수 파싱
args = parser.parse_args()
# 인수 값 출력
print(args.verbose)

위의 예제에서는 --verbose라는 옵션을 여러 번 사용하여 실행하면, args.verbose에는 사용한 횟수가 저장됩니다.

위에서 소개한 것들은 argparse에서 제공하는 일부 action 속성의 종류에 대한 간단한 설명입니다. 다양한 action 속성을 함께 조합하여 보다 복잡한 인수 처리 로직을 구성할 수도 있습니다. argparse의 공식 문서에 자세한 내용이 담겨있으니 참고하시기 바랍니다.

argparse는 명령 줄 인수 처리를 효율적이고 간편하게 처리할 수 있는 도구이며, 프로그램의 사용성을 향상시키는 데에 유용한 기능을 제공합니다.