我需要获取当前登录用户的主目录的位置。目前,我一直在Linux上使用以下内容:
os.getenv("HOME")
但是,这在Windows上不起作用。什么是正确的跨平台方式?
答案 0 :(得分:1230)
您想使用os.path.expanduser。这将确保它适用于所有平台
from os.path import expanduser
home = expanduser("~")
如果您使用的是Python 3.5+,则可以使用pathlib.Path.home():
from pathlib import Path
home = str(Path.home())
答案 1 :(得分:8)
我知道这是一个旧线程,但我最近在一个大型项目(Python 3.8)中需要它。它必须适用于任何主流操作系统,因此我采用了@Max 在评论中写的解决方案。
代码:
import os
print(os.path.expanduser("~"))
输出窗口:
PS C:\Python> & C:/Python38/python.exe c:/Python/test.py
C:\Users\mXXXXX
输出 Linux (Ubuntu):
rxxx@xx:/mnt/c/Python$ python3 test.py
/home/rxxx
我还在 Python 2.7.17 上对其进行了测试,它也能正常工作。
答案 2 :(得分:3)
我发现 pathlib 模块也支持这一点。
from pathlib import Path
>>> Path.home()
WindowsPath('C:/Users/XXX')
答案 3 :(得分:-19)
这是一种Linux方式cd ..如果您需要使用它,请注意:(如果您位于子目录中,那么它将进入该目录)