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
相关产品推荐
相关产品推荐

