23P by xguru 15일전 | favorite | 댓글 2개
  • 파이썬의 모듈들은 명령행 도구로 사용될 수 있음
    • 예를 들어 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: 파이썬 파일의 탭과 공백 혼용 체크

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

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