커맨드라인 인터페이스 라이브러리
커맨드라인 인터페이스 라이브러리 (Command-line interface libraries)
이 장에서 설명하는 모듈들은 애플리케이션의 커맨드라인 및 터미널 인터페이스 구현을 도와줘요.
커맨드라인 도구를 만들 때는 인자를 파싱하고, 사용자 입력을 받고, 터미널을 제어하는 일이 필요해요.
이 장의 모듈들이 그 작업을 나눠 담당해요.
이 장은 파이썬 표준 라이브러리에서 CLI·터미널 관련 모듈을 모아 둔 목차 페이지예요.
본문
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_*() 메서드를 정의하면 프롬프트·명령 디스패치·도움말을 자동으로 구성해 줘요.
테스트 하네스, 관리 도구, 프로토타입에 유용해요.