43

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

我可以这样做:

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

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

os.environ["USER"]

有时有效,但有时未设置该环境变量。

4

2 回答 2

90
import getpass
print(getpass.getuser())

请参阅getpass模块的文档。

getpass.getuser()

返回用户的“登录名”。可用性:Unix、Windows。

此函数按顺序检查环境变量 LOGNAME、USER、LNAME 和 USERNAME,并返回第一个设置为非空字符串的值。如果未设置,则在支持 pwd 模块的系统上返回密码数据库中的登录名,否则将引发异常。

于 2009-05-13T20:12:15.707 回答
20

这应该在 Unix 下工作。

import os
print(os.getuid()) # numeric uid
import pwd
print(pwd.getpwuid(os.getuid())) # full /etc/passwd info
于 2009-05-13T20:12:10.697 回答