使用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
格式,它将运行在任何你想要的目录。