- Python標準ライブラリには、ターミナルで実行できる隠れたCLIツールが含まれている
python -m gzip --decompress pypi.db.gz のように gzip を活用できる
- Pythonモジュールに
if __name__ == "__main__" ブロックがあれば、python -m モジュール名 で実行できるため
- このように活用できるモジュールの一部
python -m http.server 8001
python -m asyncio Pythonコンソールでトップレベルの await が可能になる
python -m tokenize cgi.py | head -n 10 Pythonトークナイザーのデバッグモード
python -m ast cgi.py | head -n 10 ASTデバッグモード
python -m json.tool JSONの整形出力が可能
python -m nntplib デフォルトで gmane.comp.python.general ニュースグループの最新投稿を表示する(残念ながら他のグループは不可)
python -m calendar 今年のカレンダーを出力し、-t html でHTML出力も可能
- Python標準ライブラリには、このほかにも多くの便利な小さなツールが隠れている
3件のコメント
Webサーバーはかなり重宝しています。会社で
scpで移すと強めにスロットリングがかかって(セキュリティのためだとは思いますが;;;)、Samba アクセスもものすごく遅いので……大きなファイルを受け取るときは Python のWebサーバーで……python -m base64:echo "test string" | python -m base64 -e | python -m base64 -dpython -m imghdr IMAGE_FILENAMEpython -m sndhdr SOUND_FILENAMEpython -m inspect PYTHON_PKGいざという時に役立つことがたまにあります。
Hacker Newsの意見
re.Scannerツールは、公式ドキュメントに記載されていない正規表現ベースのトークナイザーです。if __name__ == "__main__":ブロックを使うと、モジュールを単一の*.pyファイルとして実行できます。zipfileモジュールは、コマンドラインでzipファイルを展開したり圧縮したりするために使えます。json.toolモジュールは、コマンドラインでJSONを整形して表示するために使えます。http.serverモジュールは、ローカルネットワークでファイルを共有するのに役立ちます。