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

跨目录调用含read_csv的函数时出现FileNotFoundError的解决方法

解决Python脚本路径依赖调用目录的问题

问题核心是Python的相对路径默认基于当前工作目录(即运行脚本的目录),而非脚本文件本身所在的目录。要让路径始终基于location.py的位置,可通过以下两种方式实现:

方法1:使用os模块(传统方式)

在location.py中用__file__变量获取脚本自身的绝对路径,再拼接目标文件路径:

import os
import pandas as pd

def assign():
    # 获取location.py所在目录的绝对路径
    script_dir = os.path.dirname(os.path.abspath(__file__))
    # 拼接并规范化目标文件路径,自动处理层级跳转
    csv_path = os.path.normpath(os.path.join(script_dir, '../../Dataset/Import.csv'))
    df = pd.read_csv(csv_path)
    # 后续业务逻辑

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

pathlib提供更直观的面向对象路径操作,代码更简洁易读:

from pathlib import Path
import pandas as pd

def assign():
    # 获取location.py所在目录的绝对路径
    script_dir = Path(__file__).parent.resolve()
    # 层级跳转+拼接路径(parent对应上级目录)
    csv_path = script_dir.parent.parent / "Dataset" / "Import.csv"
    df = pd.read_csv(csv_path)
    # 后续业务逻辑

原理说明

__file__是Python内置变量,存储当前脚本文件的路径(可能是相对或绝对路径,取决于运行方式),通过os.path.abspath或Path.resolve()转成绝对路径后,就能基于脚本所在目录构建目标文件的绝对路径,彻底摆脱对调用目录的依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 14:24:56