Python

【Pyhton】環境変数を扱う方法

この記事では、Pythonのコード内で環境変数を扱う方法を解説します。環境変数を使うことでプログラム内でOSやシステムが持っている変数を扱うことができます。また、環境変数はプログラム中で変更することもできます。それでは、環境変数を扱う方法を見ていきましょう!

環境変数とは?

環境変数(environment variable)とは、OSなどのシステムが持っている変数のことを言い、全てのプログラムから使用することができます。

環境変数には、どんな言語を使っているかとか検索パスなどが設定されています。

環境変数をプログラム中から書き換えてもそのプログラム中の値が変わるだけなので他のプログラムなどには影響を与えることはありません。また、プログラムが終了するとそのプログラム中で書き換えた環境変数が元に戻ることに注意しましょう!

ターミナルやコマンドプロンプトでsetコマンドを実行すると環境変数の一覧を確認することができます。その際、環境変数名=値という形で表示されます。

環境変数の使い方

Pythonのコード内から環境変数を扱うには、osモジュールのenvironを使います。

environは、環境変数名をkeyに持ち、値を文字列でvalueに持つマップ型のオブジェクトです。辞書と同様のメソッドが使用でき、使い方も同じです。

環境変数を取得

取得したい環境変数名を指定して取得できます。

import os

print(os.environ['HOME'])

実行結果

/Users/user

辞書型のget()メソッドを使うことでも取得できます。存在していないキーを指定してもエラーにならず、第二引数でデフォルト値を指定できます。

import os

print(os.environ.get('HOGE', '存在しないキー'))

実行結果

存在しないキー

また、osモジュールのgetenv()を使うことでも取得できます。

import os

print(os.getenv('HOGE', '存在しないキー'))

実行結果

存在しないキー

環境変数を追加・変更

既存のキーを指定して代入するとそのキーの値を書き換え、存在いないキーを指定して代入すると新しく環境変数を追加することができます。

import os

# HOMEを書き換え
os.environ['HOME'] = '/Users/user'
print(os.environ['HOME'])

# 新しくMOGEを追加
os.environ['MOGE'] = 'moge'
print(os.environ['MOGE'])

実行結果

/Users/user
moge

環境変数を削除

環境変数を削除するには、del文を使います。

import os

# HOMEを削除
del os.environ['HOME'] 
print(os.environ['HOME'])

実行結果

Traceback (most recent call last):
  File "/Users/user/Desktop/Python/test.py", line 5, in 
    print(os.environ['HOME'])
  File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/os.py", line 679, in __getitem__
    raise KeyError(key) from None
KeyError: 'HOME'

バイト文字列で扱う

環境変数をバイト文字列で扱いたい場合は、osモジュールのenvironbを使います。environbは、environのバイト文字列バージョンです。

import os

# key,valueをバイト文字列で指定する

# 取得
print(os.environb[b'HOME'])

# 変更・追加
os.environb[b'MOGE'] = b'moge'

# 削除
del os.environb[b'MOGE']

環境変数を使って処理を切り替える

環境変数は、そのプログラム全体の処理を切り替えたりするのに使われます。

例えば、環境変数LANGを取得し、日本語を使っている場合は日本語を、英語を使っている場合は英語を返したりできます。

import os

if os.environ['LANG'].startswith('ja'):
    print('日本語')
else:
    print('英語')

実行結果

日本語

また新たに環境変数を追加し、処理を切り替えたりもできます。

import os

os.environ['PHASE'] = '開発'

if os.environ['PHASE'] == '開発':
    print('開発中')
elif os.environ['PHASE'] == 'テスト':
    print('テスト中')
else:
    print('本番')

実行結果

開発中

このように、システム全体の処理を切り替えたりする値を環境変数で扱います。

まとめ

Pythonで環境変数を扱う方法を解説しました!

環境変数を使うことで相手がどんな言語を使っているかやログインしているユーザーネームなど色々な情報を使うことができます。

それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ

最短3か月でエンジニア転職『DMM WEBCAMP COMMIT』