Python의 argparse
모듈은 명령행 인수 파싱을 쉽게 구현할 수 있도록 도와주는 강력한 도구입니다. argparse
의 add_subparsers()
메서드를 사용하면 서브명령어를 프로그램에 추가할 수 있습니다. 이 기능을 활용하면 단일 프로그램에서 여러 가지 작업을 수행할 수 있는 명령어 인터페이스를 만들 수 있습니다.
서브명령어란?
서브명령어는 주 명령어의 하위 명령어로, 프로그램의 다른 기능을 호출하거나 다른 동작을 수행하는데 사용됩니다. 예를 들어, git
명령어에서 commit
, add
, push
등의 서브명령어를 사용하여 다양한 작업을 수행할 수 있습니다.
add_subparsers()
사용법
argparse.ArgumentParser
클래스의 add_subparsers()
메서드를 사용하여 서브명령어를 추가할 수 있습니다. 아래는 간단한 예제 코드입니다.
import argparse
# ArgumentParser 인스턴스 생성
parser = argparse.ArgumentParser()
# 서브명령어 파서 생성
subparsers = parser.add_subparsers(dest='command')
# 서브명령어 'add'를 추가
add_parser = subparsers.add_parser('add', help='Add two numbers')
add_parser.add_argument('num1', type=int)
add_parser.add_argument('num2', type=int)
# 서브명령어 'subtract'를 추가
subtract_parser = subparsers.add_parser('subtract', help='Subtract two numbers')
subtract_parser.add_argument('num1', type=int)
subtract_parser.add_argument('num2', type=int)
# 실행 인수를 파싱
args = parser.parse_args()
# 서브명령어에 따라 동작 수행
if args.command == 'add':
result = args.num1 + args.num2
print(f'The sum is: {result}')
elif args.command == 'subtract':
result = args.num1 - args.num2
print(f'The difference is: {result}')
위의 코드에서 add_subparsers()
는 subparsers
라는 ArgumentParser
객체를 반환합니다. add_parser()
메서드를 사용하여 각 서브명령어를 추가할 수 있습니다. 각 서브명령어 파서에는 해당 서브명령어에 필요한 인수들을 추가할 수 있습니다.
parse_args()
메서드를 호출하면 명령행 인수를 파싱하여 해당 서브명령어에 따라 동작을 수행할 수 있습니다. args.command
를 확인하여 어떤 서브명령어가 선택되었는지 판단할 수 있습니다.
이제 Python 스크립트를 실행할 때 서브명령어와 필요한 인수를 함께 전달하여 프로그램을 실행할 수 있습니다.
$ python my_program.py add 10 20
The sum is: 30
$ python my_program.py subtract 20 10
The difference is: 10
위와 같이 서브명령어를 사용하여 다양한 동작을 수행할 수 있습니다.
argparse
의 add_subparsers()
를 사용하여 서브명령어를 추가하는 방법에 대해 알아보았습니다. 이를 활용하여 다양한 기능을 제공하는 명령어 인터페이스를 만들어 보세요. Happy coding!