社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

在Linux上以root用户身份获取Python中的主目录路径

Student • 3 年前 • 1105 次点击  

我有一个脚本,需要当前用户的路径字符串。我在用 os.path.expanduser("~") .我的问题是如果我按照 root 路径是 /root ,在那里我想要 /home/user-name .如何在Python3中实现这一点?

这个片段

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

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

/root
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/133659
 
1105 次点击  
文章 [ 1 ]  |  最新文章 3 年前
Corralien
Reply   •   1 楼
Corralien    3 年前

使现代化 后编辑。

使用 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