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

跨文件夹调用函数时文件路径错误的解决方案求助

解决跨文件夹调用时文件路径错误的问题

问题根源在于:Python的相对路径是基于**当前工作目录(CWD)**解析的,而非脚本文件所在的目录。当你在Folder2中运行main.py时,CWD是Folder2,所以./data.txt会指向Folder2下的文件,而非Folder1中的目标文件。

以下是无需传递路径参数的解决方案,无论从哪个位置调用reader.py都能正确定位data.txt:

方案1:使用os模块构建基于脚本位置的绝对路径

在reader.py中,利用__file__变量获取当前脚本的绝对路径,再拼接data.txt的路径:

import os

# 获取reader.py所在文件夹的绝对路径
script_dir = os.path.dirname(os.path.abspath(__file__))
# 拼接得到data.txt的绝对路径
data_file_path = os.path.join(script_dir, "data.txt")

# 后续用这个路径打开文件
with open(data_file_path, "r") as f:
    content = f.read()

方案2:使用pathlib模块(Python3.4+推荐)

pathlib提供了更直观的路径操作方式,代码更简洁:

from pathlib import Path

# 获取reader.py所在的文件夹路径
script_dir = Path(__file__).parent
# 拼接data.txt路径(支持/运算符)
data_file_path = script_dir / "data.txt"

# 打开文件
with open(data_file_path, "r") as f:
    content = f.read()

这两种方法的核心逻辑一致:通过__file__获取脚本自身的位置,以此为基准构建目标文件的绝对路径,彻底摆脱当前工作目录的影响,完美适配多源调用的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 03:47:42