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

是否有一种可移植的方式来获取当前用户的用户名(例如,至少在Linux和Windows下都可以使用)。 它会像os.getuid一样os.getuid

>>> os.getuid()
42
>>> os.getusername()
'slartibartfast'

我搜索了一下,很惊讶没有找到一个明确的答案(虽然也许我只是谷歌搜索很差)。 pwd模块提供了一种相对简单的方式来实现这个目标,比如Linux,但它不在Windows上。 某些搜索结果表明,在某些情况下(例如,作为Windows服务运行),在Windows下获取用户名可能会很复杂,尽管我没有证实这一点。


看看getpass模块

import getpass
getpass.getuser()
'kostya'

可用性:Unix,Windows


ps下面的注释“此函数查看各种环境变量的值以确定用户名,因此,不应将此函数用于访问控制目的(或可能用于任何其他目的,因为它允许任何用户模拟其他任何用户)“。


你最好打赌将os.getuid()pwd.getpwuid()结合起来:

import os
import pwd

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

有关更多详细信息,请参阅pwd文档:

http://docs.python.org/library/pwd.html


你也可以使用:

 os.getlogin()
链接地址: http://www.djcxy.com/p/2241.html

上一篇: Is there a portable way to get the current username in Python?

下一篇: What is the difference between concurrent programming and parallel programming?