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

Python跨目录导入父目录文件后无法读取同目录CSV文件问题求助

问题根因

该报错和模块导入逻辑无关,是工作路径匹配错误导致的:

  • 单独运行cleaning.py时,当前工作目录为cleaning.py所在的主文件夹,相对路径Transaction Listing.csv能正确匹配到文件
  • 从apps目录下的managers文件导入cleaning模块时,当前工作目录为apps子文件夹,程序会尝试在apps目录下寻找Transaction Listing.csv,自然找不到文件

修复步骤

需要对两个文件的路径逻辑分别做修改:

1. 修改cleaning.py的csv读取逻辑

不要使用固定相对路径读取csv,改为基于cleaning.py自身的文件位置拼接绝对路径,确保不管该文件被哪里导入都能正确定位csv:

import os
import pandas as pd # 你原本使用的读取库无需修改

# 核心修改:获取当前cleaning.py所在的目录绝对路径
cleaning_dir = os.path.dirname(os.path.abspath(__file__))
# 拼接csv文件的完整路径
csv_path = os.path.join(cleaning_dir, "Transaction Listing.csv")
# 用拼接后的绝对路径读取文件
df_invoices_full = pd.read_csv(csv_path)

2. 修正managers文件的模块导入路径

你当前写的os.path.abspath("cleaning.py")会受运行时工作目录影响,大概率追加的路径是错误的,改为基于managers文件自身位置定位主目录:

import sys
import os

# 获取managers文件所在的apps目录的上级目录(即存放cleaning.py的主目录)
parent_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(parent_dir)

# 之后正常导入即可
from cleaning import df_invoices_full

内容的提问来源于stack exchange,提问作者Cristian Tellez Montoya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 06:24:00