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

跨Mac与Windows平台读取文件夹内JSON文件的路径适配问题

跨平台路径适配解决方案

直接硬编码带反斜杠的路径会导致跨平台兼容问题——Windows用\作为路径分隔符,而macOS(以及Linux)用/。解决这个问题的核心是用Python标准库自动处理路径分隔符,不需要手动写死路径符号。

方法1:使用os.path模块(兼容Python 2和3)

os.path会根据当前操作系统自动选择正确的分隔符,用os.path.join()拼接路径即可:

import os
import json

# 假设folder1是项目根目录下的文件夹,用相对路径拼接
PATH = os.path.join("folder1", "configurations", "globals.json")

def grab_api_credentials(resource: str) -> dict:
    """
    :param resource: database, fmp, fred, polygon
    """
    with open(PATH, 'r') as file:
        data = json.load(file)
    if resource is None:
        return data
    return data[resource]

如果folder1的位置是相对于当前脚本文件的(而非运行脚本的工作目录),更稳妥的写法是先获取脚本所在目录,再拼接路径:

import os
import json

# 获取当前脚本所在的绝对目录
script_dir = os.path.dirname(os.path.abspath(__file__))
# 从脚本目录出发拼接目标文件路径
PATH = os.path.join(script_dir, "folder1", "configurations", "globals.json")

def grab_api_credentials(resource: str) -> dict:
    """
    :param resource: database, fmp, fred, polygon
    """
    with open(PATH, 'r') as file:
        data = json.load(file)
    if resource is None:
        return data
    return data[resource]

方法2:使用pathlib模块(Python 3.4+推荐)

pathlib是Python 3.4引入的面向对象路径处理库,写法更简洁直观:

from pathlib import Path
import json

# 相对路径写法
PATH = Path("folder1") / "configurations" / "globals.json"

# 或者相对于脚本文件的路径
script_dir = Path(__file__).parent.resolve()
PATH = script_dir / "folder1" / "configurations" / "globals.json"

def grab_api_credentials(resource: str) -> dict:
    """
    :param resource: database, fmp, fred, polygon
    """
    with open(PATH, 'r') as file:
        data = json.load(file)
    if resource is None:
        return data
    return data[resource]

两种方法都能自动适配Windows和macOS的路径规则,不需要手动修改PATH变量——Python会帮你处理分隔符的差异。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 14:09:26