You need to enable JavaScript to run this app. Python如何获取系统用户名以访问C:/Users/USERNAME目录下的文件
优惠活动
大模型
产品
解决方案
定价
更多

Python如何获取系统用户名以访问C:/Users/USERNAME目录下的文件

你之前的两种写法不生效,是因为Python不会自动解析普通字符串中的Windows环境变量占位符%USERNAME%,传入open函数的路径会被原样识别,无法完成变量替换,因此找不到对应路径的文件。

方法1:通过os模块读取环境变量(匹配你期望的%USERNAME%使用逻辑)

你可以通过os模块直接读取USERNAME环境变量再拼接路径,也可以直接用os模块提供的占位符解析接口直接处理带%USERNAME%的路径字符串:

import os
# 方式1:手动读取环境变量拼接
username = os.environ.get("USERNAME")
file_path = f"C:/Users/{username}/Desktop/data3.txt"
with open(file_path, "r") as f:
    # 此处写文件操作逻辑
    content = f.read()

# 方式2:直接解析带%VAR%的路径字符串
file_path = os.path.expandvars("C:/Users/%USERNAME%/Desktop/data3.txt")
with open(file_path, "r") as f:
    content = f.read()

方法2:直接获取用户主目录(更简洁,兼容性更好)

不需要手动拼接C:/Users/前缀,使用内置的路径扩展方法直接定位到当前用户的主目录,这种写法同时兼容Windows、macOS、Linux系统:

import os
# ~ 在路径中会被自动替换为当前用户主目录
file_path = os.path.expanduser("~/Desktop/data3.txt")
with open(file_path, "r") as f:
    content = f.read()

方法3:使用pathlib(Python 3.4及以上版本推荐写法)

pathlib是Python官方推荐的面向对象路径处理库,写法更简洁易读:

from pathlib import Path
# Path.home() 会直接返回当前用户主目录的路径对象
file_path = Path.home() / "Desktop" / "data3.txt"
with open(file_path, "r") as f:
    content = f.read()

关于无导入使用占位符的说明

没有可行的无导入实现方案。环境变量读取、路径占位符解析都需要依赖Python标准库提供的接口实现,Python原生语法不支持自动替换字符串中的系统环境变量占位符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 17:54:02