43

Pythonプロセスが実行されているユーザーを見つける最良の方法は何ですか?

私はこれを行うことができます:

name = os.popen('whoami').read() 

しかし、それはまったく新しいプロセスを開始しなければなりません。

os.environ["USER"]

動作することもありますが、その環境変数が設定されていないこともあります。

4

2 に答える 2

90
import getpass
print(getpass.getuser())

getpassモジュールのドキュメントを参照してください。

getpass.getuser()

ユーザーの「ログイン名」を返します。可用性: Unix、Windows。

この関数は、環境変数 LOGNAME、USER、LNAME、および USERNAME を順番にチェックし、空でない文字列に設定されている最初の変数の値を返します。何も設定されていない場合、pwd モジュールをサポートするシステムでパスワード データベースからのログイン名が返されます。それ以外の場合は、例外が発生します。

于 2009-05-13T20:12:15.707 に答える
20

これは Unix で動作するはずです。

import os
print(os.getuid()) # numeric uid
import pwd
print(pwd.getpwuid(os.getuid())) # full /etc/passwd info
于 2009-05-13T20:12:10.697 に答える