在Linux上获取Python中的主目录路径作为根目录



我有一个脚本,其中需要当前用户的路径字符串。我正在使用os.path.expanduser("~")。我的问题是,如果我以root的形式执行脚本,那么路径是/root,在那里我想要类似/home/user-name的东西。我如何在Python3中实现这一点?

这个片段

from os.path import expanduser
print(expanduser("~"))

当被调用为根sudo python3 test.py时返回:

/root

后期编辑后更新

使用os.environ获取SUDO_USER变量或作为后备USERNAME

脚本test.py:

import os
username = os.environ.get('SUDO_USER', os.environ.get('USERNAME'))
print(os.path.expanduser(f'~{username}'))

执行:

$ python test.py
/home/louis
$ sudo python test.py
/home/louis

来自man sudo:

SUDO_USER设置为调用SUDO的用户的登录名。


编辑前的旧答案

使用os.path.expanduser:(

>>> os.path.expanduser('~louis')
/home/louis

相关内容

  • 没有找到相关文章

最新更新