Python中的whoami

51 投票
2 回答
56304 浏览
提问于 2025-04-15 11:34

怎样才能找到一个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模块的系统上,它会返回密码数据库中的登录名;如果不支持,就会出现错误。

撰写回答