是否有一种可移植的方式来获取 Python 中的当前用户名?

新手上路,请多包涵

什么是获取当前用户用户名的可移植方式(例如对于 Linux 和 Windows)?类似于 os.getuid() 的东西会很好:

 >>> os.getuid()
42

>>> os.getusername()
'slartibartfast'

pwd 模块仅适用于 Unix。有些人建议在某些情况下(例如,作为 Windows 服务运行),在 Windows 下获取用户名可能会很复杂。

原文由 Jacob Gabrielson 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 332
2 个回答

getpass 模块

import getpass
getpass.getuser()
'kostya'

可用性:Unix、Windows


ps 根据下面的评论“ 此函数查看各种环境变量的值以确定用户名。因此,不应依赖此函数用于访问控制目的(或可能任何其他目的,因为它允许任何用户冒充任何其他)。

原文由 Konstantin Tenzin 发布,翻译遵循 CC BY-SA 4.0 许可协议

结合 os.getuid()pwd.getpwuid()

 import os
import pwd

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

有关详细信息,请参阅 pwd 文档。

原文由 Liam Chasteen 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题