whoami in python

Josh Gibson picture Josh Gibson · May 13, 2009 · Viewed 35.1k times · Source

What is the best way to find out the user that a python process is running under?

I could do this:

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

But that has to start a whole new process.

os.environ["USER"]

works sometimes, but sometimes that environment variable isn't set.

Answer

Ayman Hourieh picture Ayman Hourieh · May 13, 2009
import getpass
print(getpass.getuser())

See the documentation of the getpass module.

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.