【2025年版】PythonでWindowsの環境変数を取得する方法まとめ【初心者から】 | スクラムとは 仕事が進まなく技術力もないリーダーのごっこ遊び

WindowsPythonを使用して環境変数を取得したい場合、様々な方法があります。この記事では、初心者から上級者まで理解しやすいように、以下の内容を詳しく解説します。

【2025年版】PythonでWindowsの環境変数を取得する方法まとめ【初心者から】

🔍 環境変数とは?

環境変数は、OSがプログラムに提供する設定情報の1つです。
例えば、以下のような情報が含まれます。

  • PATH:プログラムの実行ファイルが格納されているディレクトリの一覧
  • TEMP:一時ファイルの保存場所
  • USERNAME:現在のログインユーザー名

Pythonを使えば、これらの情報を簡単に取得できます。


1. 基本的な環境変数の取得 (osモジュール)

Pythonos モジュールは、環境変数の取得に最も簡単で便利な方法です。

すべての環境変数を取得する

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モジュール:コマンドプロンプトと同様の情報を取得可能

用途に応じて最適な方法を選ぶと効率的に作業できます