在Python中有没有一种可移植的方法来获取当前用户的用户名(也就是说,至少可以在Linux和Windows下工作)。它会像os.getuid
一样工作
>>> os.getuid()
42
>>> os.getusername()
'slartibartfast'
我用谷歌搜索了一下,惊讶地发现没有找到一个明确的答案(尽管我可能只是谷歌得不好)。pwd模块提供了一种在Linux下实现这一点的相对简单的方法,但它在Windows上不存在。一些搜索结果表明,在Windows下获取用户名在某些情况下可能很复杂(例如,作为Windows服务运行),尽管我还没有证实这一点。
发布于 2009-05-08 22:30:51
看看getpass模块
import getpass
getpass.getuser()
'kostya'
可用性: Unix、Windows
附注:Per comment below“此函数查看各种环境变量的值以确定用户名。因此,不应将此函数用于访问控制目的(或任何其他目的,因为它允许任何用户模拟任何其他目的)。”
发布于 2010-05-25 01:53:52
最好的方法是将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
发布于 2009-10-20 21:00:12
您还可以使用:
os.getlogin()
https://stackoverflow.com/questions/842059
复制相似问题