iMind Developers Blog

iMind開発者ブログ

PythonでTOMLファイルの読込みと編集

概要

PythonでTomlファイルを読み込んで値を参照する。

参照した値を編集してファイル出力する。

バージョン情報

  • toml-0.10.0

インストール

pip install toml

サンプルデータ

下記のデータを読み込ませてみる。

# 適当なtomlファイル

a = 0
b = "hoge"
c = "fuga"

[key]
value = "val1"

[key1.key2]
value = "val2"

[[arr]]
x = 0

[[arr]]
x = 1

[[arr]]
x = 2

arr2 = [1, 2, 3]

toml.load

toml.loadでTomlファイルをロードできる。

引数にはファイル名かopenしたファイルを渡す。

# ファイル名を渡す場合
obj = toml.load('settings.toml')

# openして渡す場合
with open('settings.toml', 'rt') as fp:
    obj = toml.load(fp)

実行結果

{'a': 0,
 'b': 'hoge',
 'c': 'fuga',
 'arr1': [1, 2, 3],
 'key': {'value': 'val1'},
 'key1': {'key2': {'value': 'val2'}},
 'arr2': [{'x': 0}, {'x': 1}, {'x': 2}]}

文字列からtomlを読み込む

toml形式の文字列から読み込む場合は loads を使う。

obj = toml.loads('''
a = 123
b = "abc"
''')

    #=> 実行結果
    #=> {'a': 123, 'b': 'abc'}

tomlの出力

読み込んだtomlを編集して再出力してみる。

ファイルへの出力はdump、文字列での出力はdumps。

# サンプルデータの読み込み
obj = toml.load('settings.toml')

# 文字列での出力
toml_str = toml.dumps(obj)
print(toml_str)                                                                                                             

# ファイルへの出力
with open('settings_new.toml', 'wt') as fp:
    toml.dump(obj, fp)

実行結果

a = 0
b = "hoge"
c = "fuga"
arr1 = [ 1, 2, 3,]
[[arr2]]
x = 0

[[arr2]]
x = 1

[[arr2]]
x = 2

[key]
value = "val1"

[key1.key2]
value = "val2"

改定履歴

Author: Masato Watanabe, Date: 2020-01-27, 記事投稿