커맨드라인 인터페이스 라이브러리

커맨드라인 인터페이스 라이브러리 (Command-line interface libraries)

이 장에서 설명하는 모듈들은 애플리케이션의 커맨드라인 및 터미널 인터페이스 구현을 도와줘요.

커맨드라인 도구를 만들 때는 인자를 파싱하고, 사용자 입력을 받고, 터미널을 제어하는 일이 필요해요.

이 장의 모듈들이 그 작업을 나눠 담당해요.

이 장은 파이썬 표준 라이브러리에서 CLI·터미널 관련 모듈을 모아 둔 목차 페이지예요.

출처: Python documentation

본문

argparse — 커맨드라인 옵션·인자·서브커맨드 파서

argparse 모듈은 사용자 친화적인 커맨드라인 인터페이스를 쉽게 작성하게 해 줘요.

프로그램이 필요한 인자를 정의하면 argparse가 sys.argv에서 그것을 파싱해요.

자동으로 도움말·사용법 메시지를 생성하고, 잘못된 인자가 들어오면 오류를 냅니다.

옵션, 위치 인자, 서브커맨드까지 지원해요.

optparse — 커맨드라인 옵션 파서

optparse 모듈은 커맨드라인 옵션 파서로, argparse의 전신이에요.

기본 옵션 파싱을 제공하지만 argparse만큼 강력하지는 않아서, 새 코드에서는 argparse 사용을 권장해요.

getpass — 이식 가능한 비밀번호 입력

getpass 모듈은 터미널에서 비밀번호를 안전하게 입력받는 기능을 제공해요.

입력을 에코하지 않고, 프롬프트를 표시해 암호를 받아요.

이식 가능한 방식으로 동작해서 플랫폼별 차이를 추상화해 줘요.

fileinput — 여러 입력 스트림의 줄 반복

fileinput 모듈은 커맨드라인에서 주어진 여러 입력 파일의 줄을 순서대로 반복하는 편의를 제공해요.

표준 입력을 포함해 여러 소스를 하나의 스트림처럼 다룰 수 있어요.

curses — 문자 셀 디스플레이 터미널 처리

curses 모듈은 텍스트 기반 터미널 UI(윈도우, 패널, 키 입력 처리)를 만드는 기능을 제공해요.

터미널의 캐릭터 셀 디스플레이를 제어하는 저수준 인터페이스예요.

curses.textpad — 텍스트 입력 위젯

curses.textpad 모듈은 curses 프로그램에서 텍스트 입력 상자를 만들 수 있는 위젯을 제공해요.

텍스트 영역 편집을 위한 Textbox를 제공해요.

curses.ascii — ASCII 문자 유틸리티

curses.ascii 모듈은 ASCII 문자 판별·변환 유틸리티를 제공해요.

문자가 알파벳인지, 제어 문자인지 등을 판별하는 함수들이 있어요.

curses.panel — curses용 패널 스택 확장

curses.panel 모듈은 curses에 패널 스택(깊이 순서)을 추가하는 확장이에요.

겹치는 창을 순서대로 관리해요.

cmd — 줄 단위 명령 해석기 지원

cmd 모듈은 줄 단위 명령 해석기(대화형 셸)를 작성하기 위한 프레임워크를 제공해요.

Cmd 클래스를 상속받고 do_*() 메서드를 정의하면 프롬프트·명령 디스패치·도움말을 자동으로 구성해 줘요.

테스트 하네스, 관리 도구, 프로토타입에 유용해요.

더 알아보기 (Learn more)