在python中的whoami

时间:2009-05-13 20:09:25

标签: python posix

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

我可以这样做:

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

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

os.environ["USER"]

有时会工作,但有时候没有设置环境变量。

2 个答案:

答案 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