pythonプロセスが実行されているユーザーを見つける最良の方法は何ですか?
私はこれを行うことができます:
name = os.popen('whoami').read()
しかし、それはまったく新しいプロセスを開始する必要があります。
os.environ["USER"]
動作することもありますが、環境変数が設定されない場合もあります。
import getpass
print getpass.getuser()
getpass モジュールのドキュメントを参照してください。
getpass.getuser()
ユーザーの「ログイン名」を返します。利用できる環境:Unix、Windows。
この関数は、環境変数LOGNAME、USER、LNAME、USERNAMEを順にチェックし、空でない文字列に設定されている最初の値を返します。何も設定されていない場合、pwdモジュールをサポートするシステムでパスワードデータベースのログイン名が返されます。それ以外の場合は、例外が発生します。
これはUnixで動作するはずです。
import os
print os.getuid() # numeric uid
import pwd
print pwd.getpwuid(os.getuid()) # full /etc/passwd info