久々のアップです。 時間はあるけど、自由にならないんです。
ちょこちょこ、とは作業はしてるんです。 で、最近便利だと感じているやつです。
いつものことで、以下のサイトに出会ったから。(感謝!)
これまで、設定ファイルから読んで、変数をあれこれセットするのに、 class 作ってとか結構頑張る必要があった(初心者なんで)けど、 こいつを使うと、この部分が随分楽になった、と、思う。
例えば、以下のように、簡単にドットでアクセスできる。 (json と ini。 エラー処理とかなし。まだ出来てない)
読み込ませるファイルをきちんと整理するのは大事。 自分は何度も直しとかしてるし、今も変更する候補あり。
あと、json より 自由にメモがかける、ini? の方が好きかも。 使い分けがスジなんだろうけど。
import configparser
import json
import sys
from box import Box
from prompt_toolkit import print_formatted_text as pprint
def read_ini(_f):
"""Return python-box."""
#
t_config = configparser.ConfigParser()
t_config.read(_f)
_p = {s: dict(t_config.items(s)) for s in t_config.sections()}
# 取り敢えず読んだものを辞書にするだけ.型とかセットしていない.
return Box(_p)
def read_json(_f):
"""Return python-box."""
#
with open(_f, encoding="utf-8") as _b:
_p = json.load(_b)
# = json.loads()
# loads は使えない。リストが含まれてるから?
return Box(_p)
def main():
"""Read setting files."""
#
para_box_i = read_ini("test.ini")
pprint(para_box_i.kml.path)
pprint(para_box_i.kml.descriptions)
para_box_j = read_json("test.json")
pprint(para_box_j.kml.path)
pprint(para_box_j.kml.descriptions)
sys.exit()
if __name__ == "__main__":
main()
クラスを書く量が随分と少なくなる。 速度や、使用メモリとか、どうなんだろうか。
まあ、便利になったはずなので、よし、としよう。
久々のアップで、手順忘れかけてる。