소개
명령줄(command line) 또는 명령줄 인터페이스(CLI)라고도 하는 Python 명령줄 인터페이스는 터미널이나 명령 프롬프트에 명령을 입력하여 컴퓨터 프로그램과 상호 작용하는 방법입니다. 이를 통해 사용자는 프로그램을 실행하고 인수를 전달할 수 있으며, 텍스트 형식으로 프로그램의 출력을 받을 수 있습니다. 명령줄 인터페이스는 작업 자동화, 스크립트 실행, 그래픽 사용자 인터페이스(GUI)를 통해 수행하기 어렵거나 불가능한 고급 또는 복잡한 작업을 수행하는 데 특히 유용합니다.
이 실습에서는 argparse 모듈을 사용하여 Python 프로그램용 명령줄 인터페이스를 만드는 방법을 배웁니다. 간단한 예제부터 시작하여 점차 더 복잡한 예제로 나아갈 것입니다. 이 실습을 마칠 때쯤이면 argparse 모듈을 사용하여 Python 프로그램에 강력한 명령줄 인터페이스를 만드는 방법을 잘 이해하게 될 것입니다.
학습 목표
argparse모듈- Python 스크립트
Argparse 모듈 가져오기
argparse 모듈을 사용하는 첫 번째 단계는 모듈을 가져오는(import) 것입니다.
코드가 포함될 Python 파일을 만들어야 합니다.
touch my_program.py
Python 스크립트의 시작 부분에 다음 코드 줄을 추가하여 이를 수행할 수 있습니다.
import argparse
파서(Parser) 객체 생성
argparse 모듈을 가져온 후에는 ArgumentParser() 함수를 호출하여 파서 객체를 만들 수 있습니다. 이 함수는 여러 선택적 인수를 취하지만, 지금은 프로그램에 대한 간단한 설명만 제공하겠습니다.
parser = argparse.ArgumentParser(description="간단한 명령줄 인터페이스입니다.")
인수 추가
이제 파서 객체가 있으므로 인수를 추가할 수 있습니다. 위치 인수(positional arguments) 및 선택적 인수(optional arguments)와 같이 추가할 수 있는 여러 유형의 인수가 있습니다. 예를 들어, 다음과 같이 위치 인수를 추가할 수 있습니다.
parser.add_argument("name", help="당신의 이름")
그리고 다음과 같이 선택적 인수를 추가할 수 있습니다.
parser.add_argument("-n", "--number", help="메시지를 반복할 횟수", type=int, default=1)
인수 파싱
모든 인수를 추가한 후에는 파서 객체의 parse_args() 함수를 호출하여 인수를 파싱할 수 있습니다. 이 함수는 인수를 취하지 않으며 모든 인수 값을 포함하는 객체를 반환합니다.
args = parser.parse_args()
인수 사용
이제 인수를 파싱했으므로 프로그램에서 사용할 수 있습니다. 예를 들어, 다음과 같이 name 인수를 사용할 수 있습니다.
print("Hello, " + args.name)
선택적 인수는 다음과 같이 사용합니다.
print("Hello, " + args.name * args.number)
전체 코드
위에 설명된 모든 단계가 포함된 실습의 전체 코드는 다음과 같습니다.
import argparse
## 파서 객체 생성
parser = argparse.ArgumentParser(description="간단한 명령줄 인터페이스입니다.")
## 인수 추가
parser.add_argument("name", help="당신의 이름")
parser.add_argument("-n", "--number", help="메시지를 반복할 횟수", type=int, default=1)
## 인수 파싱
args = parser.parse_args()
## 인수 사용
print("Hello, " + args.name * args.number)
명령줄에서 파일이 있는 디렉토리로 이동한 다음 python my_program.py를 입력하고 스크립트에 전달하려는 인수를 입력하여 스크립트를 실행할 수 있습니다.
python my_program.py "John" --number 3
그러면 콘솔에 "Hello, JohnJohnJohn"이 출력됩니다.
요약
이 실습에서는 argparse 모듈을 사용하여 Python 프로그램용 명령줄 인터페이스를 만드는 방법을 배웠습니다. argparse 모듈을 가져오고, 파서 객체를 만들고, 파서에 인수를 추가하고, 인수를 파싱하고, 프로그램에서 사용하는 방법을 살펴보았습니다. 이 지식을 바탕으로 Python 프로그램에 강력한 명령줄 인터페이스를 만들 수 있을 것입니다.



