[파이썬] argparse의 주요 기능

argparse는 Python 프로그램에서 커맨드 라인 인터페이스를 구현하는 데 도움이 되는 매우 유용한 라이브러리입니다. argparse를 사용하면 사용자로부터 커맨드 라인에서 인자(argument)를 입력받을 수 있으며, 이를 파싱하여 프로그램에 전달할 수 있습니다. 이렇게 함으로써 사용자와 상호작용하며 프로그램의 동작을 조정할 수 있습니다.

argparse의 주요 기능은 다음과 같습니다:

1. 인자 파싱

argparse는 커맨드 라인에서 사용자로부터 인자를 입력받는 기능을 제공합니다. argparse 모듈을 사용하여 프로그램의 인자(argument)를 정의하고, 사용자로부터 입력받은 인자를 파싱(parsing)할 수 있습니다. 이렇게 파싱된 인자들은 프로그램 내에서 쉽게 사용할 수 있게 됩니다.

import argparse

# 인자 파서 생성
parser = argparse.ArgumentParser()

# 인자(argument) 추가
parser.add_argument("infile", help="Input filename")
parser.add_argument("--output", help="Output filename")

# 파싱된 인자 읽기
args = parser.parse_args()

# 인자 사용 예시
print("입력 파일:", args.infile)
if args.output:
    print("출력 파일:", args.output)

위의 예제에서 argparse 모듈을 사용하여 infileoutput 인자를 정의하고, 이를 파싱하여 args 변수에 저장하였습니다. 이후 파싱된 인자들을 활용하여 프로그램의 동작을 조정할 수 있습니다.

2. 인자 유효성 검사

argparse는 입력된 인자들의 유효성을 검사할 수 있는 기능도 제공합니다. 예를 들어, 인자의 값이 특정 범위 내에 있는지, 파일이 존재하는지 등을 검사할 수 있습니다. 이를 통해 올바르지 않은 입력을 처리하거나 오류를 사전에 방지할 수 있습니다.

import argparse

parser = argparse.ArgumentParser()

# 인자 유효성 검사
parser.add_argument("count", type=int, help="Number of elements")
parser.add_argument("--max", type=float, default=100.0, help="Maximum value")

args = parser.parse_args()

# 인자 값 검사
if args.count < 0:
    print("Error: count must be a positive integer")
else:
    print("Number of elements:", args.count)

if args.max < 0:
    print("Error: max value must be non-negative")
else:
    print("Maximum value:", args.max)

위의 예제에서 count 인자는 int 타입을 가져야 하며, max 인자는 기본 값으로 float 타입을 가지고 있습니다. 유효성 검사를 통해 인자의 값이 유효한지 확인할 수 있습니다.

3. 도움말 생성

argparse는 자동으로 도움말 메시지를 생성하고 출력하는 기능도 제공합니다. 이를 통해 사용자는 프로그램의 기능과 사용 방법을 쉽게 파악할 수 있습니다.

import argparse

parser = argparse.ArgumentParser(description="My Program")

parser.add_argument("infile", help="Input filename")
parser.add_argument("--output", help="Output filename")

args = parser.parse_args()

위의 예제에서 argparsedescription 인자를 사용하여 도움말 메시지를 설정하였습니다. 따라서 사용자가 프로그램 실행 시 --help 옵션을 사용하면 프로그램의 기능과 인자에 대한 도움말을 확인할 수 있습니다.

이 외에도 argparse는 다양한 기능과 설정 옵션을 제공하며, 프로그램의 인터페이스를 유연하고 사용자 친화적으로 만들어줍니다. argparse의 자세한 사용법과 기능은 공식 문서를 참고하시기 바랍니다.