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

Python导入自定义模块后读取模块同目录文件报FileNotFoundError怎么办

问题结论

不存在导入逻辑错误,问题出在文件路径的解析规则配置错误。

原因说明

Python的open()函数使用相对路径时,会基于**执行脚本时的当前工作目录(CWD)**解析路径,而非基于代码所在.py文件的存储目录解析。
你运行app.py时,当前工作目录为base/,因此util.py中的open("db.csv")实际会尝试读取base/db.csv,而非你预期的base/cmod/db.csv,因此触发文件不存在报错。

修复代码

兼容全Python版本写法(基于os模块)

修改util.py代码如下:

from csvhandler import CSVFile
import os

def get_db():
    # 取当前util.py文件的所在目录绝对路径
    mod_dir = os.path.dirname(os.path.abspath(__file__))
    # 拼接得到db.csv的完整路径
    db_file = os.path.join(mod_dir, "db.csv")
    with open(db_file, "r+") as db:
        data = CSVFile(db)
    return data

Python 3.4+ 简化写法(基于pathlib)

from csvhandler import CSVFile
from pathlib import Path

def get_db():
    db_file = Path(__file__).parent / "db.csv"
    with open(db_file, "r+") as db:
        data = CSVFile(db)
    return data

修改后无论从哪个工作目录执行上层脚本,都能正确定位到cmod目录下的db.csv文件,满足文件存储位置要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 15:15:07