Python 개발자로서 애플리케이션을 위한 명령줄 인터페이스를 만들어야 하는 경우가 종종 있습니다.
CLI(명령줄 인터페이스)는 사용자가 복잡한 작업을 실행하고 설정을 구성하고 다양한 작업을 수행할 수 있도록 애플리케이션과 상호 작용하는 강력한 방법입니다.
게시물에서는 모듈을 사용하여 Python에서 명령줄 인터페이스를 만드는 방법을 살펴보겠습니다.
명령줄 인터페이스를 사용하는 이유는 무엇입니까?
명령줄 인터페이스를 만드는 방법에 대해 자세히 알아보기 전에 먼저 명령줄 인터페이스가 유용한 이유를 이해해 보겠습니다.
첫째, 명령줄 인터페이스를 통해 사용자는 유연하고 강력한 방식으로 애플리케이션과 상호 작용할 수 있습니다.
사용자는 애플리케이션에 명령줄 인수를 전달하여 동작을 구성하고 명령을 함께 스크립팅하여 작업을 쉽게 자동화할 수 있습니다.
둘째, 명령줄 인터페이스는 플랫폼 간에 일관된 사용자 경험을 제공합니다. 사용자가 실행 중인 운영 체제에 관계없이 동일한 방식으로 애플리케이션과 상호 작용할 수 있습니다.
마지막으로 명령줄 인터페이스는 특정 작업에 대해 그래픽 사용자 인터페이스(GUI)보다 빠르고 효율적일 수 있습니다. 예를 들어 GUI를 사용하여 동일한 작업을 수행하는 것보다 명령줄 도구를 사용하여 많은 수의 파일에 대해 일괄 작업을 수행하는 것이 더 빠른 경우가 많습니다.
간단한 명령줄 인터페이스 만들기
이제 명령줄 인터페이스가 유용한 이유를 이해했으므로 모듈을 사용하여 Python에서 만드는 방법을 살펴보겠습니다.
이 argparse모듈은 명령줄 인수를 쉽게 구문 분석할 수 있게 해주는 Python의 표준 라이브러리 모듈입니다.
응용 프로그램에서 허용하는 인수를 정의하는 간단하고 직관적인 방법을 제공하고 도움말 메시지와 오류 메시지를 자동으로 생성합니다.
시작하려면 두 개의 명령줄 인수를 허용하고 출력하는 간단한 Python 스크립트를 만들어 보겠습니다.
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("arg1", help="description of argument 1")
parser.add_argument("arg2", help="description of argument 2")
args = parser.parse_args()
print(args.arg1)
print(args.arg2)
여기에서 먼저 argparse모듈을 가져오고 클래스의 인스턴스를 만듭니다 ArgumentParser.
그런 다음 메서드를 사용하여 add_argument()응용 프로그램에서 허용하는 두 개의 인수를 정의 arg1하고 arg2. 매개 help변수는 사용자가 옵션을 사용하여 애플리케이션을 실행할 때 표시될 각 인수에 대한 설명을 제공합니다 --help.
parse_args()마지막으로 명령줄 인수를 구문 분석하고 변수에 저장하기 위해 호출합니다 args. args.arg1그런 다음 및 를 사용하여 인수 값에 액세스 args.arg2하고 출력할 수 있습니다.
이 스크립트를 실행하려면 위의 코드를 Python 파일(예 myprogram.py: )에 저장한 다음 다음과 같이 명령줄에서 실행합니다.
python myprogram.py value1 value2
arg1이렇게 하면 및 의 값이 각각 및 arg2로 설정됩니다 .value1value2
선택적 인수 추가
위치 인수 외에도 argparse선택적 인수를 정의할 수 있습니다. 선택적 인수 앞에는 -또는가 --있으며 다양한 방법으로 응용 프로그램의 동작을 수정하는 데 사용할 수 있습니다.
--verbose예를 들어 추가 디버깅 정보를 출력할 선택적 인수를 스크립트에 추가한다고 가정해 보겠습니다 . 이를 위해 스크립트를 수정하는 방법은 다음과 같습니다.
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("arg1", help="description of argument 1")
parser.add_argument("arg2", help="description of argument 2")
parser.add_argument("--verbose", help="print extra debugging information",
'파이썬' 카테고리의 다른 글
[Python]#34 Python에서 비동기 처리를 이용한 서버 프로그래밍 개념[asyncio] (0) | 2023.04.02 |
---|---|
[Python]#33 멀티스레딩 및 멀티프로세싱을 사용하여 Python의 동시성 및 병렬성 (0) | 2023.03.31 |
[Python]#31 이미지 처리로 놀라운 시각 효과 만들기 (0) | 2023.03.29 |
[Python]#30 AI 및 기계 학습 개발에서 Python의 역할 (0) | 2023.03.28 |
[Python]#29 Pandas란 무엇이며 Python에서 데이터 분석에 Pandas를 사용하는 방법 (0) | 2023.03.27 |