Python中的whoami
怎样才能找到一个Python程序是哪个用户在运行呢?
我可以这样做:
name = os.popen('whoami').read()
不过这样会启动一个全新的进程。
os.environ["USER"]
这个方法有时候有效,但有时候那个环境变量并没有设置。
2 个回答
20
这个在Unix系统下应该可以运行。
import os
print(os.getuid()) # numeric uid
import pwd
print(pwd.getpwuid(os.getuid())) # full /etc/passwd info
103
import getpass
print(getpass.getuser())
请查看getpass模块的文档。
getpass.getuser()
这个函数会返回用户的“登录名”。适用系统:Unix和Windows。
这个函数会依次检查环境变量LOGNAME、USER、LNAME和USERNAME,返回第一个设置为非空字符串的值。如果这些变量都没有设置,那么在支持pwd模块的系统上,它会返回密码数据库中的登录名;如果不支持,就会出现错误。