6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

argparseに渡された引数をJSON形式で保存する

Last updated at Posted at 2019-06-19

Summary

argparseは、コマンドラインオプションを簡単に実装できるpythonモジュールです。特に実験で大量のパラメータを用意する必要がある時に大変重宝します。一方で実験結果とともに使用したパラメータを保存したい状況は結構あると思われます。ここでは__argparseに渡された引数を、人間にも読みやすいJSON形式で保存するコード__を共有します。

Snippet

ポイントは__dict__を用いることでargparseに渡された引数をdict()に変換している点です。
後は、jsonに渡しインデントを追加することで、可読性の高い形で保存することができます。

main.py
import json
import argparse

parser = argparse.ArgumentParser()
parser.add_argument("--param1", type=str, default="test")
parser.add_argument("--param2", type=int, default=100)
parser.add_argument("--param3", type=float, nargs="+", default=[0.1, 0.2, 0.3])
args = parser.parse_args()

with open("./params.json", mode="w") as f:
    json.dump(args.__dict__, f, indent=4)
params.json
{
    "param1": "test",
    "param2": 100,
    "param3": [
        0.1,
        0.2,
        0.3
    ]
}
6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?