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

Windows10下VS Code中Python无法读取指定目录JSON文件求助

解决Windows下Python读取JSON文件的路径问题

先分析你遇到的三种路径写法的问题

  1. r前缀路径:这个写法本身转义逻辑是对的,报错FileNotFoundError说明路径看似正确,但实际存在其他隐性问题(比如文件名/路径拼写、扩展名隐藏、权限限制等)。
  2. 双反斜杠路径:你写了四个反斜杠(\\\\),但路径里的\u被Python识别为Unicode转义序列(要求\u后必须接4个十六进制字符),因此触发SyntaxError,这个写法本身就不符合语法规则。
  3. 单反斜杠路径:\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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 01:22:57