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

Python添加系统路径后仍无法找到文件?MATLAB转用户的疑问

问题原因与解决方法

核心误解:sys.path的实际作用

你完全搞错了sys.path的用途——它是Python用来查找可导入的模块(.py文件)或包的路径列表,和MATLAB的全局路径逻辑不一样,根本不负责普通数据文件(比如CSV、TXT)的查找。MATLAB里加路径后脚本、数据都能直接访问,但Python的sys.path只服务于import语句,和文件IO的路径查找毫无关系。

另外你代码里还有个大小写错误:导入的是os as os,但判断路径时写的是OS.path.exists——Python严格区分大小写,这里应该是小写的os.path.exists,不过你说执行无报错,估计实际运行时是打对了,顺便提一句避免后续踩坑。

解决办法

要直接读取目标目录里的CSV,给你三个实用方案:

方法1:切换当前工作目录

用os.chdir()把当前工作目录切到目标文件夹,之后就能直接用文件名读取:

import os
# 切换到存放CSV的dir2路径
os.chdir("/path/to/dir2")
can_log = pd.read_csv("RDE_cold_20210331_Resampled.csv")

注意:切换工作目录后,后续所有文件操作都会基于这个新路径,要是还要读其他目录的文件,得切回去或者用绝对路径。

方法2:直接使用完整文件路径

把文件的绝对路径传给pd.read_csv(),这是最稳妥的方式,不受当前工作目录影响:

import os
file_path = os.path.join("/path/to/dir2", "RDE_cold_20210331_Resampled.csv")
can_log = pd.read_csv(file_path)

用os.path.join()能自动适配Windows/Linux/macOS的路径分隔符,避免手动拼接路径出错。

方法3:自定义文件查找函数(贴近MATLAB习惯)

如果想模拟MATLAB的路径查找逻辑,可以写个小函数,遍历你添加的路径,找到目标文件后返回路径:

import os
import sys

def find_file(filename):
    for path in sys.path:
        file_path = os.path.join(path, filename)
        if os.path.isfile(file_path):
            return file_path
    raise FileNotFoundError(f"文件 {filename} 在sys.path的所有目录中均未找到")

# 使用函数读取
can_log = pd.read_csv(find_file("RDE_cold_20210331_Resampled.csv"))

这个方法适合习惯MATLAB操作逻辑的场景,但频繁使用的话还是推荐前两种更直接的方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 04:52:15