在sudo下运行Python脚本时,如何获得用户主目录?



使用Python SDK,我开发了一个从终端运行的应用程序,因为我使用的一些库需要我在sudo上运行这个命令。

应用程序通过创建项目名称创建文件夹,并将所有数据存储在文件夹

在我的情况下,当我运行sudo python app.py时,我得到root目录而不是主目录/home/<user_name>/

在Python中,我如何获得/home/user/?

请注意我只有一个用户。

我认为你想要的是os.getlogin()甚至更好的getpass.getlogin()。根据os.login()的标准库文档:

对于大多数用途,使用getpass.getuser()更有用,因为后者检查环境变量LOGNAME或USERNAME以找出用户是谁,并退回到pwd.getpwuid(os.getuid())[0]以获取当前真实用户id的登录名。

因此,如果您想关注环境变量,请使用getpass.getlogin()else而不是os.getlogin()

os.path.expanduser('~{user}')

其中{user}是任意用户,在您的示例中…

os.path.expanduser('~user')

cd /home/user && sudo python3 main.py

格式,它将运行在任何你想要的目录。

最新更新