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

Python跨目录读取JSON文件出现旧版本数据问题求助

跨目录读取JSON文件返回旧数据的问题

问题场景

从其他目录读取apply.json时得到旧版本数据,但同目录下其他JSON文件读取正常;将该文件复制到当前工作目录后,能正常读取正确内容。

示例代码

with open("../frontend/src/components/Presets/apply.json") as infile:
    settings_data = json.load(infile)
    print(settings_data)

原apply.json内容

{
  "Active": "Preset 0",
  "reqAmountMin": 0,
  "reqAmountMax": 0
}

不同路径的读取输出

  • 原目录读取输出:
{'reqAmountMin': 0, 'reqAmountMax': 90}
  • 当前目录读取输出:
{'Active': 'Preset 0', 'reqAmountMin': 0, 'reqAmountMax': 0}

已确认路径正确并重建文件,但问题仍存在,以下是解决建议:


解决建议

1. 禁用文件缓冲读取

Python或操作系统可能缓存了旧文件内容,尝试禁用缓冲读取:

with open("../frontend/src/components/Presets/apply.json", buffering=0) as infile:
    settings_data = json.load(infile)
    print(settings_data)

2. 验证文件绝对路径

相对路径可能因当前工作目录差异导致读错文件,打印绝对路径确认:

import os
file_path = "../frontend/src/components/Presets/apply.json"
print(os.path.abspath(file_path))

手动检查该绝对路径下的文件内容是否符合预期。

3. 刷新文件系统缓存

部分操作系统会缓存文件内容,可尝试以下操作:

  • 重启Python进程或终端
  • Linux环境执行sync命令刷新缓存;Windows环境可重启文件资源管理器或系统

4. 直接检查原文件内容

用命令行工具直接查看原路径文件,确认内容是否正确:

# Linux/macOS
cat ../frontend/src/components/Presets/apply.json
# Windows
type ../frontend/src/components/Presets/apply.json

如果命令行输出和预期一致,说明问题出在Python读取环节;如果不一致,排查文件同步或版本控制问题(如Git分支差异、云同步未完成)。

5. 排查链接文件

原路径文件可能是硬链接或软链接,指向了旧版本文件:

  • Linux/macOS:执行ls -l ../frontend/src/components/Presets/apply.json查看是否为链接
  • Windows:执行dir /a ../frontend/src/components/Presets/apply.json,查看文件属性是否为快捷方式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 05:33:20