找出运行python进程的用户的最佳方法是什么?
我可以这样做:
name = os.popen('whoami').read()
但这必须开始一个全新的过程。
os.environ["USER"]
有时会工作,但有时候没有设置环境变量。
答案 0 :(得分:68)
import getpass
print getpass.getuser()
请参阅getpass模块的文档。
getpass.getuser()
返回用户的“登录名”。可用性:Unix,Windows。
此函数检查环境变量LOGNAME,USER, LNAME和USERNAME,按顺序和 返回第一个的值 它被设置为非空字符串。如果 没有设置,登录名来自 返回密码数据库 支持pwd模块的系统, 否则,会引发异常。
答案 1 :(得分:18)
这应该在Unix下运行。
import os
print os.getuid() # numeric uid
import pwd
print pwd.getpwuid(os.getuid()) # full /etc/passwd info