今までPythonista3でのスクリプトではマジックナンバーを使用していたので、それはよくないということで環境変数の管理を試みた。
JSONファイルで管理
JSONでコンフィグファイルを作成し、環境変数を使用するスクリプト実行時に、os.environで環境変数の値を設定するようにしてみた。問題はPythonista3内では.py以外のファイルがUIから作成できないこと(自動で.pyにされてしまう)。そのため、スクリプトでファイルを作成、編集し、JSONファイルを用意することにする。
JSONファイル編集用スクリプト
import json
# JSON設定ファイルのパス
config_file_path = './ini/config.json'
# 現在のJSONファイルの内容を読み込む
try:
with open(config_file_path, 'r') as file:
config = json.load(file)
except FileNotFoundError:
# ファイルが存在しない場合は空の辞書を使用
config = {}
print("現在の設定:", config)
try:
while True:
# 標準入力から新しいデータを受け付ける
key = input("追加するキーを入力してください: ")
value = input("追加する値を入力してください: ")
# 新しいデータを辞書形式で作成
new_data = {key: value}
# 新しいデータを既存の設定に追加
config.update(new_data)
# 変更された内容をJSONファイルに書き込む
with open(config_file_path, 'w') as file:
json.dump(config, file, indent=4)
print(f"新しいデータが {config_file_path} に追加されました。")
except KeyboardInterrupt:
print(f"環境変数の登録を終了しました。")
環境変数の読込み設定モジュール
import os
import json
def setenv(filename):
# JSON設定ファイルのパス
config_file_path = './ini/' + filename
# JSON設定ファイルを読み込む
with open(config_file_path, 'r') as file:
config = json.load(file)
# 環境変数として設定する
for key, value in config.item():
os.environ[key] = value
まとめ
これでとりあえずマジックナンバー使わずにコードが書けるようになったけど、今は環境変数で管理しているのが3,4つくらいしかないので、手間感すごい。まぁこれから使うスクリプトが増えれば、管理しやすくなる、はず。