# 파이썬의 다양한 코맨드라인 도구들

> Clean Markdown view of GeekNews topic #15183. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=15183](https://news.hada.io/topic?id=15183)
- GeekNews Markdown: [https://news.hada.io/topic/15183.md](https://news.hada.io/topic/15183.md)
- Type: news
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2024-06-05T10:41:02+09:00
- Updated: 2024-06-05T10:41:02+09:00
- Original source: [pythonmorsels.com](https://www.pythonmorsels.com/cli-tools/)
- Points: 25
- Comments: 2

## Summary

파이썬의 모듈들은 명령행 도구로 사용될 수 있으며, 다양한 유용한 명령행 도구들을 제공한다. 예를 들어, `python -m http.server`는 간단한 웹 서버를 시작하고, `python -m json.tool`은 JSON 데이터를 예쁘게 포맷팅한다. 또한, 파이썬은 코드 분석 도구와 재미있는 이스터에그 스크립트도 포함하고 있다.

## Topic Body

- 파이썬의 모듈들은 명령행 도구로 사용될 수 있음  
  - 예를 들어 webbrowser 모듈을 명령행에서 실행하면 기본 웹 브라우저를 통해 주어진 URL을 열 수 있음  
  - 파이썬 표준 라이브러리에는 이러한 모듈-스크립트 하이브리드가 많이 포함되어 있음  
- -m 옵션을 사용하여 파이썬을 실행하면 주어진 파이썬 모듈을 스크립트처럼 실행함  
  - 일부 모듈은 import 시점에 어떤 동작을 하는데, 예를 들어 antigravity 모듈은 XKCD 만화를 웹 브라우저로 열어줌. 이를 명령행에서 실행하면 모듈을 import한 것과 동일한 효과가 있음  
  - 이를 "import side effect"라고 부르며, 대부분의 모듈은 이를 피함. antigravity와 같은 이스터에그 모듈이 예외임  
  - Import side effect를 피하는 모듈들은 모듈로 import될 때와 스크립트로 실행될 때 다른 동작을 하기 위해 __name__ 변수를 사용함  
  
### 유용한 일반 목적 명령행 도구들  
- `python -m http.server`: 간단한 웹 서버 시작  
- `python -m webbrowser`: 웹 브라우저 실행  
- `python -m json.tool`: JSON 데이터를 예쁘게 포맷팅  
- `python -m calendar`: 명령행 캘린더 보여주기   
  
### 윈도우에서 특히 유용한 도구들  
- `python3.12 -m uuid`: uuidgen CLI 유틸리티와 유사  
- `python3.12 -m sqlite3`: sqlite3 CLI 유틸리티와 유사  
- `python -m zipfile`: zip & unzip CLI 유틸리티와 유사  
- `python -m gzip`: gzip & gunzip CLI 유틸리티와 유사  
- `python -m tarfile`: tar CLI 유틸리티와 유사  
  
### 파이썬 코드 작업시 유용한 도구들  
- `python -m pip`: 서드파티 파이썬 패키지 설치  
- `python -m venv`: 가상 환경 생성  
- `python -m pdb`: 파이썬 디버거 실행  
- `python -m unittest`: unittest 테스트 실행  
- `python -m pydoc`: 문서 보기  
- `python -m doctest`: 주어진 파일의 doctest 실행  
- `python -m ensurepip`: pip 설치  
- `python -m idlelib`: IDLE 그래픽 REPL 실행  
- `python -m zipapp`: 파이썬 모듈을 실행 가능한 ZIP으로 변환  
- `python -m compileall`: 파이썬 파일들을 바이트코드로 미리 컴파일  
  
### 파이썬 코드 분석 도구들  
- `python -m tokenize`: 파이썬 모듈을 토큰으로 분해  
- `python -m ast`: 코드의 추상 문법 트리 보여주기   
- `python -m dis`: 파이썬 코드를 바이트코드로 디스어셈블  
- `python -m inspect`: 파이썬 객체의 소스코드 검사  
- `python -m pyclbr`: 모듈의 객체들에 대한 개요 보기  
  
### 파이썬 이스터에그로 작동하는 재미있는 스크립트들  
- `python -m __hello__`: "Hello world!"를 출력함  
- `python -m this`: 파이썬의 선(The Zen of Python, PEP 20)을 출력함   
- `python -m antigravity`: 웹 브라우저에서 파이썬 관련 XKCD 만화 353번을 열어줌   
- `python -m turtledemo`: `turtle` 모듈로 그릴 수 있는 다양한 그림들의 데모를 보여줌  
  
### 기타 파이썬 관련 도구들  
- `python -m asyncio`: asyncio 지원 파이썬 REPL 실행  
- `python -m cProfile`: 파이썬 프로그램 프로파일링  
- `python -m pstats`: cProfile로 생성된 프로파일 통계 보기  
- `python -m pickle`: pickle 파일 내용 보기 (high-level)  
- `python -m pickletools`: pickle 파일 분해 (low-level)  
  
### 덜 유용한 도구들  
- `python -m timeit`: 파이썬 표현식 수행 시간 측정  
- `python -m site`: 파이썬의 "site" 정보 보기  
- `python -m sysconfig`: 파이썬 구성 세부사항 보기  
- `python -m platform`: 현재 플랫폼 정보 보기  
- `python -m mimetypes`: 파일 mimetype/확장자 정보 보기  
- `python -m quopri`: raw email 데이터 인코딩/디코딩  
- `python -m filecmp`: 2개의 디렉토리 내용 비교  
- `python -m tabnanny`: 파이썬 파일의 탭과 공백 혼용 체크

## Comments



### Comment 26146

- Author: han905
- Created: 2024-06-11T23:43:29+09:00
- Points: 1

와 생각보다 좋은 기능들이 많네요 굳

### Comment 25959

- Author: dhy0613
- Created: 2024-06-05T17:50:51+09:00
- Points: 2

폐쇄망 환경의 리눅스 서버에 zip파일 반입해서 들어갔는데 unzip 명령어가 없어서  
python -m zipfile 모듈로 압축풀고 진행했던 기억이 있네요
