是否有一种可移植的方式来获取Python中当前用户的用户名(即,至少在Linux和Windows下都能运行的用户名).它的工作方式如下os.getuid:
>>> os.getuid()
42
>>> os.getusername()
'slartibartfast'
Run Code Online (Sandbox Code Playgroud)
我搜索了一下,并且惊讶地发现没有找到确定的答案(尽管我可能只是谷歌搜索不好).该PWD模块提供了一个相对简单的方法来实现这一目标下,说,Linux的,但它不存在于Windows.一些搜索结果表明,在Windows下获取用户名在某些情况下可能会很复杂(例如,作为Windows服务运行),尽管我还没有验证.
当我使用sudo的任何命令时,环境变量不存在.例如,在设置HTTP_PROXY之后,该命令wget可以正常工作sudo.但是,如果我键入sudo wget它说它无法绕过代理设置.
我有一个Python脚本,它将执行许多需要根级权限的事情,例如在/ etc中移动文件,使用apt-get安装,等等.我目前有:
if os.geteuid() != 0:
exit("You need to have root privileges to run this script.\nPlease try again, this time using 'sudo'. Exiting.")
Run Code Online (Sandbox Code Playgroud)
这是检查的最佳方式吗?还有其他最佳做法吗?