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

2024-03-29 14:53:47 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有一种在Python中获取当前用户用户名的可移植方法(即至少在Linux和Windows下都可以使用的方法)。它的工作方式如下:

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

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


Tags: 模块方法答案用户oslinuxwindows方式
3条回答

getpass模块

import getpass
getpass.getuser()
'kostya'

可用性:Unix、Windows


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

你最好把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()

相关问题 更多 >