You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WSL2中通过Python获取Windows用户主目录?

在WSL2的Python脚本中获取Windows用户主目录的方法

从WSL2的视角来看,Windows用户主目录的路径格式为/mnt/c/Users/<WINUSERNAME>,而WSL2自身的Linux用户主目录路径为/home/<LINUXUSERNAME>。使用pathlib.Path.home()只能获取后者:

from pathlib import Path
home = str(Path.home())

print(home) # 输出示例:/home/linux_user

如果需要在WSL2的Python脚本中获取Windows用户主目录,且不假设Windows与Linux用户名一致,可以用以下两种可靠方法:

方法一:读取同步的Windows环境变量

WSL2默认会同步当前Windows用户的环境变量,其中USERPROFILE变量对应Windows用户主目录,且WSL会自动将其转换为Linux格式的路径(如/mnt/c/Users/WinUser)。直接读取该变量即可:

import os

win_user_home = os.environ.get('USERPROFILE')
if win_user_home:
    print(win_user_home) # 输出示例:/mnt/c/Users/John

这个方法无需额外依赖,是最简便且可靠的方案,完全不依赖用户名是否一致。

方法二:通过Windows注册表查询(兼容特殊场景)

如果遇到环境变量未同步的特殊情况,可以直接调用Windows的reg.exe工具查询注册表中的用户主目录路径,再转换为WSL格式:

import subprocess

# 调用reg命令查询Windows用户主目录的注册表项
proc = subprocess.run(
    ['reg.exe', 'query', r'HKEY_CURRENT_USER\Environment', '/v', 'USERPROFILE'],
    capture_output=True,
    text=True,
    check=True
)

# 解析命令输出,提取Windows路径
output_lines = proc.stdout.strip().split('\n')
win_path = output_lines[-1].split(maxsplit=3)[-1].strip()

# 转换为WSL兼容的Linux格式路径
wsl_path = win_path.replace('C:\\', '/mnt/c/').replace('\\', '/')
print(wsl_path) # 输出示例:/mnt/c/Users/John

内容的提问来源于stack exchange,提问作者John

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 04:00:01