pythonでの環境変数の参照、設定、削除。
クラスにしたもの
1つの環境変数ごとに1つのインスタンスが必要。
import os
class myosenv():
def __init__(self,new_key:str, value_str=None):
self.new_key=new_key
key_value=os.getenv(self.new_key)
if key_value is not None:
print(f"{new_key} already exists.")
print(f"{new_key}={key_value}")
raise Exception
if value_str is not None:
self.set_value(value_str)
def set_value(self, value_str:str):
os.environ[self.new_key] = value_str
def get_value(self):
return os.getenv(self.new_key)
def __del__(self):
del os.environ[self.new_key]
if __name__ == '__main__':
env = myosenv("hoge")
env.set_value("hoge1")
print(env.get_value())
print(os.environ["hoge"])
env_piyo = myosenv("piyo","piyo20")
print(env_piyo.get_value())
print(os.environ["piyo"])
基本の動作確認
コード
import os
print("\n1. 実在する環境変数")
new_key="OS"
key_value=os.getenv(new_key)
if key_value is None:
print(f"存在しない。{new_key} is {key_value}")
else:
print(f"{new_key} is {key_value}")
print("\n2. 実在しない環境変数")
new_key="hoge"
key_value=os.getenv(new_key)
if key_value is None:
print(f"存在しない。{new_key} is {key_value}")
else:
print(f"{new_key} is {key_value}")
print("\n3. 実在しない環境変数を新たに作る")
if key_value is None:
print(f"存在しない。{new_key} is {key_value}")
new_key_value="hoge2000"
os.environ[new_key] = new_key_value
print(f"set {new_key} = {new_key_value}")
else:
print(f"{new_key} is {key_value}")
print("\n4. 環境変数を新たに作った")
key_value=os.getenv(new_key)
if key_value is None:
print(f"存在しない。{new_key} is {key_value}")
else:
print(f"{new_key} is {key_value}")
print("\n5. 作った環境変数を消す")
del os.environ[new_key]
print(f"del os.environ[{new_key}]")
print(f"\n6. 環境変数を消した後")
key_value=os.getenv(new_key)
if key_value is None:
print(f"存在しない。{new_key} is {key_value}")
else:
print(f"{new_key} is {key_value}")
実行結果
1. 実在する環境変数
OS is Windows_NT
2. 実在しない環境変数
存在しない。hoge is None
3. 実在しない環境変数を新たに作る
存在しない。hoge is None
set hoge = hoge2000
4. 環境変数を新たに作った
hoge is hoge2000
5. 作った環境変数を消す
del os.environ[hoge]
6. 環境変数を消した後
存在しない。hoge is None