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