pythonでcliを書くメモ

Pyで完結するものに関しては強力よね

前提?

個人的にpythonはpkg manager(pipとかuv)が必要なるほどの環境で使うべきではないと思ってます。main.pyの1ファイルで完結するレベルまでが限界だと思っています。確かにuvやらnix?とかで依存を閉じることは有用だとは思いますが、外部を頼ってまでPythonを使う理由もないよなぁと。

殆どのLinux環境にpython3の処理系が入ってることから汎用スクリプト, shell系より型の表現が強いなどを考えると上記の中であれば極めて強力なツールだとは。


args parse

stdとか標準であるlibを使うのもいいけどシンプルなものであればこれでも。

import sys

# python3 main.py foo bar
args = sys.argv[1:]

# 空ならエラーに
if not args:
    err("no args!")

print(args[0]) # foo
print(args[1]) # bar

read toml

tomllibというlibがstdにあるらしい。

load toml from file

import tomllib

with open("path/to/file", "rb") as f:
    loaded_toml_data = tomllib.load(f)

# loaded_toml_dataは[str, Any]なデータを持つ

for k, v in loaded_toml_data.items():
    print(f"key: {k}")
    print(f"value: {v}")
    print("\n")

随時追記予定