在Python中获取当前用户名的便携方法是什么?

768 投票
15 回答
573759 浏览
提问于 2025-04-15 11:28

有没有一种可以在Linux和Windows上都能用的方法,来获取当前用户的用户名?类似于os.getuid()这样的方式就很好:

>>> os.getuid()
42

# Does not currently exist in Python
>>> os.getusername()
'slartibartfast'

pwd模块只适用于Unix系统。有些人提到,在某些情况下(比如以Windows服务的身份运行时),获取Windows下的用户名可能会比较复杂。

15 个回答

131

你还可以使用:

os.getlogin()
173

os.getuid()pwd.getpwuid() 结合起来使用:

import os
import pwd

def get_username():
    return pwd.getpwuid(os.getuid())[0]

想了解更多细节,可以查看 pwd 的文档。

1075

可以看看 getpass 模块

import getpass
getpass.getuser()
'kostya'

适用系统:Unix, Windows


补充说明:根据下面的评论 "这个函数会查看各种环境变量的值来确定用户名。因此,不应该依赖这个函数来进行访问控制(或者其他任何目的,因为它允许任何用户冒充其他用户)。"

撰写回答