LoginSignup
0
1

[備忘録]Pythonista3で環境変数の管理

Posted at

今まで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つくらいしかないので、手間感すごい。まぁこれから使うスクリプトが増えれば、管理しやすくなる、はず。

0
1
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
0
1