如何在Python中获取主目录?

时间:2010-10-26 23:43:20

标签: python cross-platform home-directory

我需要获取当前登录用户的主目录的位置。目前,我一直在Linux上使用以下内容:

os.getenv("HOME")

但是,这在Windows上不起作用。什么是正确的跨平台方式?

4 个答案:

答案 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 ..如果您需要使用它,请注意:(如果您位于子目录中,那么它将进入该目录)