Windows10下VS Code中Python无法读取指定目录JSON文件求助
解决Windows下Python读取JSON文件的路径问题
先分析你遇到的三种路径写法的问题
- r前缀路径:这个写法本身转义逻辑是对的,报错
FileNotFoundError说明路径看似正确,但实际存在其他隐性问题(比如文件名/路径拼写、扩展名隐藏、权限限制等)。 - 双反斜杠路径:你写了四个反斜杠(
\\\\),但路径里的\u被Python识别为Unicode转义序列(要求\u后必须接4个十六进制字符),因此触发SyntaxError,这个写法本身就不符合语法规则。 - 单反斜杠路径:
\u同样被解析为Unicode转义,导致实际路径中的\u_file被错误转义,最终路径和真实文件路径不匹配,自然找不到文件。
正确的路径写法方案
方案1:用正斜杠(/)代替反斜杠
Windows系统完全支持正斜杠作为路径分隔符,能彻底规避转义问题:
import json with open("C:/Path/Sam/about/cs/ffiles/up/u_file.json") as open_file: file_data = json.load(open_file) print(file_data)
注:直接用
json.load()读取文件对象,比先read()再loads()更简洁高效。
方案2:使用pathlib模块(推荐)
Python 3.4+自带的pathlib模块能优雅处理路径,完全不用纠结转义细节:
import json from pathlib import Path file_path = Path("C:/Path/Sam/about/cs/ffiles/up/u_file.json") # 写法一 with file_path.open() as open_file: file_data = json.load(open_file) print(file_data) # 写法二(更简洁) file_data = json.loads(file_path.read_text()) print(file_data)
方案3:修正r前缀的写法(若坚持用反斜杠)
r前缀是原始字符串,会保留所有字符,你的第一个写法转义逻辑没问题,但要确保路径和文件名完全匹配(包括大小写,虽然Windows不严格区分,但某些场景可能有影响):
import json with open(r"C:\Path\Sam\about\cs\ffiles\up\u_file.json") as open_file: file_data = json.load(open_file) print(file_data)
排查其他可能的问题
如果以上写法仍报错,检查以下几点:
- 文件扩展名是否被隐藏:Windows默认隐藏已知文件扩展名,可能实际文件是
u_file.json.txt,而你看到的是u_file.json。打开文件夹选项,取消勾选「隐藏已知文件类型的扩展名」,确认真实文件名。 - 路径拼写是否完全一致:复制路径到Win+R能打开,不代表代码里的路径完全没错误,比如有没有空格、大小写差异(比如
Sam实际是sam)、多/少字符的情况。 - 权限问题:如果文件在系统目录(如
C:\Windows)或受保护的文件夹,Python可能没有读取权限。右键以管理员身份运行VS Code,或者把文件移到普通文件夹(如Documents)测试。 - 确认文件存在性:重新核对文件是否被移动、删除,或路径复制时是否出现误差。
内容的提问来源于stack exchange,提问作者vinter5
相关产品推荐
相关产品推荐

