whoami in python [duplicate]

2020-02-08 23:06发布

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.

标签: python posix
2条回答
成全新的幸福
2楼-- · 2020-02-08 23:47

This should work under Unix.

import os
print os.getuid() # numeric uid
import pwd
print pwd.getpwuid(os.getuid()) # full /etc/passwd info
查看更多
The star\"
3楼-- · 2020-02-09 00:03
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.

查看更多
登录 后发表回答