[파이썬] argparse에서의 플래그 처리

프로그래밍에서 명령줄 인터페이스(CLI)를 개발할 때, argparse 모듈은 매우 유용한 도구입니다. 이 모듈을 사용하여 사용자로부터 입력을 받고, 플래그(옵션)을 처리할 수 있습니다. 이 글에서는 argparse를 사용하여 플래그를 처리하는 방법을 예제 코드와 함께 알아보겠습니다.

argparse 소개

argparse는 Python 표준 라이브러리에 포함된 라이브러리로, 명령줄 인터페이스를 만드는 데 필요한 기능을 제공합니다. 사용자가 실행할 때 명령줄에서 인자를 지정하면, argparse는 이러한 인자를 해석하고 처리하는 기능을 제공합니다.

플래그 처리 예제

다음은 간단한 예제 코드입니다. 이 코드는 사용자로부터 파일 이름과 옵션을 입력받아 해당 파일을 처리하는 기능을 가지고 있습니다. 예제 코드를 통해 플래그 처리 방법을 알아보겠습니다.

import argparse

# 파서 생성
parser = argparse.ArgumentParser(description='파일 처리기')

# 위치 인자 추가
parser.add_argument('filename', help='입력할 파일 경로')

# 옵션 인자 추가
parser.add_argument('-c', '--count', type=int, default=10, help='처리할 라인 수')

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

# 파일 처리
with open(args.filename, 'r') as file:
    lines = file.readlines()[:args.count]
    for line in lines:
        print(line)

위 코드에서는 argparse.ArgumentParser 클래스를 사용하여 파서를 생성합니다. description 매개변수를 통해 프로그램에 대한 설명을 지정할 수 있습니다.

파서에는 add_argument() 메서드를 사용하여 위치 인자와 옵션 인자를 추가합니다. 위치 인자는 예시에서 filename으로 정의되었으며, help 매개변수를 통해 사용자에게 설명을 제공합니다. 옵션 인자의 경우 -c--count로 지정되었으며, type, default, help 매개변수를 사용하여 인자의 유형, 기본값, 설명을 설정합니다.

인자 파싱은 parse_args() 메서드를 호출함으로써 이루어집니다. 이 메서드는 사용자로부터 입력받은 인자들을 해석하여 args 객체에 저장합니다.

마지막으로, 파일을 처리하는 기능이 구현되었습니다. open() 함수를 사용하여 파일을 열고, readlines() 메서드를 통해 파일의 각 라인을 읽어옵니다. args.filename은 사용자로부터 입력받은 파일 경로이며, args.count는 사용자로부터 입력받은 처리할 라인 수입니다.

실행 예제

위 예제 코드를 실행하기 위해서는 다음과 같이 명령줄에서 인자를 지정해주면 됩니다.

python file_processor.py input.txt -c 5

위 명령어는 file_processor.py 파일을 실행하고, input.txt 파일을 처리하는데 첫 5개의 라인만 출력합니다.

결론

argparse는 Python에서 명령줄 인터페이스를 처리하는 데 필수적인 도구입니다. 위 예제 코드를 통해 플래그 처리를 어떻게 구현하는지 알아보았습니다. 이를 응용하여 자신만의 명령줄 인터페이스를 개발해보세요!