Pythonでユーザー名を取得する方法

Pythonでは、現在のユーザー名を取得する方法として、getpass.getuser()os.getlogin()、環境変数を使う方法があります。

getpass.getuser()を使う方法

最も簡単でポータブルな方法は、getpassモジュールのgetuser()を使うことです。この方法はWindowsとUnixの両方で動作します。

import getpass
username = getpass.getuser()
print(username)

os.getlogin()との違い

os.getlogin()は、ターミナルセッションに基づいてユーザー名を取得しますが、仮想環境やサービスモードでは動作しないことがあるため、注意が必要です。

import os
username = os.getlogin()

環境変数を使用する

os.environを使って環境変数からユーザー名を取得する方法もありますが、セキュリティ上のリスクがあります。環境変数はユーザーが変更できるため、認証目的には不向きです。

import os
username = os.environ.get('USERNAME') or os.environ.get('USER')

まとめ

Pythonで現在のユーザー名を取得するには、getpass.getuser()が最も汎用的で安全な方法です。状況に応じてos.getlogin()や環境変数を使う方法もありますが、注意が必要です。