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