是否有一种可移植的方法可以在Python中获取当前用户的用户名(即,至少可以在Linux和Windows下工作).它会像os.getuid:

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

我在谷歌上四处搜索,惊讶地发现没有找到一个明确的答案(尽管我可能只是搜索得不好).比方说,在Linux下,pwd模块提供了一种相对简单的方式来实现这一点,但在Windows上不存在.一些搜索结果表明,在Windows下获取用户名在某些情况下可能很复杂(例如,作为Windows服务运行),尽管我还没有证实这一点.

推荐答案

看看getpass模块

import getpass
getpass.getuser()
'kostya'

可用性:Unix、Windows


附注:每条 comments 低于"this function looks at the values of various environment variables to determine the user name. Therefore, this function should not be relied on for access control purposes (or possibly any other purpose, since it allows any user to impersonate any other)."

Python相关问答推荐

max_of_three使用First_select、second_select、

对某些列的总数进行民意调查,但不单独列出每列

处理(潜在)不断增长的任务队列的并行/并行方法

沿着数组中的轴计算真实条目

使可滚动框架在tkinter环境中看起来自然

pandas:排序多级列

pandas在第1列的id,第2列的标题,第3列的值,第3列的值?

在Django admin中自动完成相关字段筛选

计算天数

AES—256—CBC加密在Python和PHP中返回不同的结果,HELPPP

Python—为什么我的代码返回一个TypeError

使用tqdm的进度条

在我融化极点数据帧之后,我如何在不添加索引的情况下将其旋转回其原始形式?

如何设置nan值为numpy数组多条件

如果不使用. to_list()[0],我如何从一个pandas DataFrame中获取一个值?

如何在python tkinter中绑定键盘上的另一个回车?

Django更新视图未更新

为什么按下按钮后屏幕的 colored颜色 保持不变?

如何在基于时间的数据帧中添加计算值

如何批量训练样本大小为奇数的神经网络?