关于posix:在python中的whoami

whoami in python

本问题已经有最佳答案,请猛点这里访问。

找出运行python进程的用户的最佳方法是什么?

我可以这样做:

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

但这必须开始一个全新的过程。

1
os.environ["USER"]

有时有效,但有时环境变量未设置。


1
2
import getpass
print getpass.getuser()

请参阅getpass模块的文档。

getpass.getuser()

Return the"login name" of the user. Availability: Unix, Windows.

This function checks the environment variables LOGNAME, USER,
LNAME and USERNAME, in order, and
returns the value of the first one
which is set to a non-empty string. If
none are set, the login name from the
password database is returned on
systems which support the pwd module,
otherwise, an exception is raised.


这应该在Unix下工作。

1
2
3
4
import os
print os.getuid() # numeric uid
import pwd
print pwd.getpwuid(os.getuid()) # full /etc/passwd info