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

Jupyter Notebook使用read_csv创建相对路径读取文件报错及跨设备运行方案咨询

Jupyter Notebook相对路径读取文件问题解决方案

报错原因

你遇到的报错是相对路径和Jupyter Notebook运行时的工作目录不匹配导致的:
你将.ipynb脚本和MyFile.csv都存放在了Park文件夹内,若你是进入Park文件夹后启动的Jupyter、或是在Jupyter界面中进入Park目录后打开的脚本,此时脚本的运行工作目录就是Park本身。写Park/MyFile.csv相当于在Park目录下再找一层名为Park的子目录读取文件,自然会提示路径不存在;直接写文件名是读取当前工作目录下的文件,所以可以正常运行。

直接写文件名的跨设备可用性

只要你压缩分发时,严格保持.ipynb脚本和MyFile.csv在同一个文件夹层级(也就是直接打包整个Park文件夹发送),接收方解压后,从该文件夹内启动Jupyter Notebook再打开对应脚本,直接写文件名的写法完全可以在其他电脑正常运行。

更稳妥的通用相对路径写法

为了避免部分接收方从其他目录启动Jupyter导致工作目录不匹配,可以使用代码动态获取当前脚本所在目录,自动拼接文件路径,只要两个文件的相对层级不变,无论从哪个路径启动Jupyter都能正常读取:

基于pathlib的写法(Python3.4+内置,更简洁)

from pathlib import Path
import pandas as pd

# 获取当前脚本所在目录的绝对路径
current_dir = Path().resolve()
# 拼接csv文件路径
csv_path = current_dir / "MyFile.csv"

data = pd.read_csv(csv_path)
data.head()

基于os模块的写法

import os
import pandas as pd

# 获取当前脚本所在目录的绝对路径
current_dir = os.path.dirname(os.path.abspath("__file__"))
# 拼接csv文件路径
csv_path = os.path.join(current_dir, "MyFile.csv")

data = pd.read_csv(csv_path)
data.head()

分发注意事项

  • 直接打包整个Park文件夹发送,不要单独拆分脚本和csv文件,避免接收方放错文件层级
  • 可在压缩包内附加简单提示,告知接收方解压后进入Park文件夹启动Jupyter即可正常运行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 08:15:02