我有一个脚本,其中需要当前用户的路径字符串。我正在使用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