WindowsでPythonを使用して環境変数を取得したい場合、様々な方法があります。この記事では、初心者から上級者まで理解しやすいように、以下の内容を詳しく解説します。
🔍 環境変数とは?
環境変数は、OSがプログラムに提供する設定情報の1つです。
例えば、以下のような情報が含まれます。
PATH:プログラムの実行ファイルが格納されているディレクトリの一覧TEMP:一時ファイルの保存場所USERNAME:現在のログインユーザー名
Pythonを使えば、これらの情報を簡単に取得できます。
✅ 1. 基本的な環境変数の取得 (osモジュール)
Pythonの os モジュールは、環境変数の取得に最も簡単で便利な方法です。
すべての環境変数を取得する
import os # 環境変数一覧の取得 env_vars = os.environ # 環境変数を表示 for key, value in env_vars.items(): print(f"{key}: {value}")
特定の環境変数を取得する
import os # 'PATH' 環境変数を取得 path_var = os.environ.get('PATH') print("PATH:", path_var) # 存在しない変数の場合 non_existent_var = os.environ.get('NON_EXISTENT', 'デフォルト値') print("NON_EXISTENT:", non_existent_var)
os.environ.get() は、環境変数が存在しない場合に None を返しますが、第2引数を指定することでデフォルト値を設定できます。
✅ 2. ユーザー環境変数とシステム環境変数の取得 (winregモジュール)
Windowsでは、環境変数は2種類存在します。
- ユーザー環境変数:特定のユーザー専用
- システム環境変数:すべてのユーザーが利用可能
winreg モジュールを使用すると、これらの環境変数を個別に取得できます。
サンプルコード
import winreg def get_env_vars(hive, subkey): with winreg.OpenKey(hive, subkey) as key: i = 0 while True: try: name, value, _ = winreg.EnumValue(key, i) print(f"{name}: {value}") i += 1 except OSError: break print("【ユーザー環境変数】") get_env_vars(winreg.HKEY_CURRENT_USER, r"Environment") print("\n【システム環境変数】") get_env_vars(winreg.HKEY_LOCAL_MACHINE, r"SYSTEM\CurrentControlSet\Control\Session Manager\Environment")
winreg モジュールは Windows 専用なので、他のOSでは動作しません。
✅ 3. 環境変数をリスト化する (PATHの区切り)
PATH 環境変数は「;」で区切られたパスの一覧です。これをリストに変換するには以下の方法が便利です。
サンプルコード
import os # PATH をリストとして取得 path_list = os.environ.get('PATH', '').split(';') print("\n".join(path_list))
✅ 4. コマンドプロンプトの set コマンドを使用 (subprocessモジュール)
コマンドプロンプトで set コマンドを使用すると、環境変数の一覧が表示されます。Pythonの subprocess モジュールを活用して、その出力を取得できます。
サンプルコード
import subprocess result = subprocess.run(['cmd.exe', '/c', 'set'], capture_output=True, text=True) print(result.stdout)
✅ 5. 環境変数の追加・更新 (os.environの代入)
環境変数の更新も os モジュールで可能です。
サンプルコード
import os # 環境変数の追加 os.environ['NEW_VAR'] = 'NewValue' # 環境変数の確認 print(os.environ.get('NEW_VAR'))
⚠️ os.environ による環境変数の変更は現在のPythonプロセス内のみ反映され、他のプログラムやシステム全体には影響しません。
🏁 まとめ
Windows環境でPythonを用いて環境変数を取得する方法を紹介しました。以下がポイントです:
osモジュール:基本的な環境変数の取得に最適winregモジュール:システム環境変数やユーザー環境変数の区別が必要な場合に使用subprocessモジュール:コマンドプロンプトと同様の情報を取得可能
用途に応じて最適な方法を選ぶと効率的に作業できます
