VSCode中pandas读取同目录CSV文件报FileNotFoundError如何解决
问题原因
Jupyter 运行代码时默认把当前 notebook 文件所在的文件夹作为工作目录,所以直接写emailss.csv这种相对路径时,会自动去代码同目录下找文件,自然能正常读取。
VSCode 运行 Python 脚本的逻辑不一样:它默认拿当前打开的工作区根目录当工作目录,不是你正在运行的.py文件的存放目录。哪怕CSV和py文件放在同一个文件夹里,只要这个文件夹不是VSCode打开的根目录,Python找文件时就会找错位置,触发文件不存在的报错。
修复方法
三种方法选一个就行,第一种最通用,换运行环境也不容易出问题:
- 方法1:代码里动态获取脚本所在路径,拼接出CSV的完整绝对路径,完全不受工作目录影响
把原有代码替换成如下内容即可:import os import pandas # 拿到当前运行的py文件所在的文件夹绝对路径 script_dir = os.path.dirname(os.path.abspath(__file__)) # 拼接出CSV文件的完整路径 csv_file_path = os.path.join(script_dir, "emailss.csv") df = pandas.read_csv(csv_file_path, names=['Email', 'Amiability']) - 方法2:改VSCode设置,让它运行脚本时自动把文件所在目录设为工作目录
打开VSCode设置面板,搜索Python > Terminal: Execute In File Dir,把对应选项打勾,之后不用改原有代码,直接运行就能正常读到文件。 - 方法3:打开VSCode时,直接选中存放py脚本和CSV的那个文件夹作为工作区根目录,不要打开它的上层文件夹,这时候原有相对路径也能正常匹配。
快速排查技巧:拿不准当前工作目录在哪的话,读文件前加一行
import os; print(os.getcwd())运行,打印出来的路径就是Python搜索相对路径的起点,一眼就能确认是不是找错了文件夹。
内容的提问来源于stack exchange,提问作者user19224573
相关产品推荐
相关产品推荐

