16 ポイント 投稿者 xguru 2023-06-30 | 3件のコメント | WhatsAppで共有
  • 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件のコメント

 
botplaysdice 2023-06-30

Webサーバーはかなり重宝しています。会社で scp で移すと強めにスロットリングがかかって(セキュリティのためだとは思いますが;;;)、Samba アクセスもものすごく遅いので……大きなファイルを受け取るときは Python のWebサーバーで……

 
mckabi 2023-06-30
  • python -m base64 : echo "test string" | python -m base64 -e | python -m base64 -d
  • python -m imghdr IMAGE_FILENAME
  • python -m sndhdr SOUND_FILENAME
  • tarfile、gzip、zip
  • locale、platform、sysconfig
  • python -m inspect PYTHON_PKG

いざという時に役立つことがたまにあります。

 
GN⁺ 2023-06-30
Hacker Newsの意見
  • Python標準ライブラリのre.Scannerツールは、公式ドキュメントに記載されていない正規表現ベースのトークナイザーです。
  • このツールはトークンのリストを一度に処理し、連続したマッチを保証します。
  • if __name__ == "__main__":ブロックを使うと、モジュールを単一の*.pyファイルとして実行できます。
  • Python 3.12には、標準ライブラリにSQLite CLI/REPLが含まれる予定です。
  • zipfileモジュールは、コマンドラインでzipファイルを展開したり圧縮したりするために使えます。
  • json.toolモジュールは、コマンドラインでJSONを整形して表示するために使えます。
  • http.serverモジュールは、ローカルネットワークでファイルを共有するのに役立ちます。
  • 標準ライブラリのモジュールをコマンドラインから使うことには、セキュリティ上のリスクが伴う可能性があります。
  • Python標準ライブラリには、文書化されていない多くの隠れたツールや機能があります。