VSCode运行Python报FileNotFoundError[Errno 2]无法识别C盘路径问题
问题根因
这个报错和Python识别不了C盘没有任何关系,是代码存在3处明显逻辑错误,直接导致路径解析失效:
- 代码中调用了
os.listdir()和pd.read_csv(),但未提前导入os和pandas依赖库,正常运行时首先会抛出模块导入错误,如果运行时没触发这个报错,说明当前运行环境存在残留变量,环境本身就不干净。 - 触发
FileNotFoundError [Errno 2] 'No such file or directory: 'C''的核心原因:map()函数的第二个参数需要传入可迭代对象,你这里直接传入了path字符串本身。Python迭代字符串时会逐个拆分单个字符,第一个字符就是C,程序会默认在当前工作目录下寻找名为C的文件,自然会抛出找不到文件的错误。 os.listdir(path)的返回值只有路径下的文件/文件夹名称,不包含父级路径,如果你直接把返回的文件名传给pd.read_csv(),程序会在Python当前运行的工作目录下查找对应文件,而非C:\fMRI目录下,就算修正了前面的错误,这里依然会触发文件找不到的报错。
修正后可直接运行的代码
import os import pandas as pd file_list = [] target_dir = r'C:\fMRI' # 先获取目录下所有csv文件的完整路径,过滤非csv文件避免报错 csv_full_paths = [ os.path.join(target_dir, filename) for filename in os.listdir(target_dir) if filename.lower().endswith('.csv') ] # 批量读取csv存入列表 file_list = list( map(lambda fpath: pd.read_csv(fpath, index_col=None, header=0), csv_full_paths) ) print(file_list)
路径类问题排查实用技巧
- 运行任何读文件的代码前,先执行
print(os.getcwd())打印当前Python的工作目录,90%的路径报错都是因为VSCode默认打开的工作目录和你预期的不一致,导致相对路径解析完全错位。 - 所有路径拼接统一用
os.path.join(),不要手动写斜杠/反斜杠,这个方法会自动适配Windows、Mac、Linux的路径分隔符规则,避免转义字符问题。 - 读文件前先做存在性校验:执行
print(os.path.exists(你传入的文件完整路径)),如果返回False,直接打印你传入的完整路径字符串核对,不要靠主观判断路径正确。 - 在VSCode中运行脚本前,先确认右上角选中的Python解释器是你安装了对应依赖(比如pandas)的环境,避免环境选错导致的各类奇怪报错。
- Windows系统写路径有三种正确写法,不要写错转义:
- 原始字符串写法:
r'C:\fMRI'(推荐,最不容易出错) - 双反斜杠写法:
'C:\\fMRI' - 正斜杠写法:
'C:/fMRI'
不要直接写单反斜杠不带r前缀,比如'C:\new_folder'里的\n会被识别成换行符,路径直接就错了。
- 原始字符串写法:
内容的提问来源于stack exchange,提问作者Joseph_C
相关产品推荐
相关产品推荐

