Jupyter中pandas.read_csv读取CSV文件连续报错如何解决
pandas read_csv读取本地CSV文件报错排查方案
问题复现
Jupyter环境中使用pandas读取本地Netflix数据集CSV文件,初始代码:
import pandas as pd data = pd.read_csv('C:\Users\Dell\Downloads\8. Netflix Dataset.csv')
运行触发语法报错:
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
在路径字符串前添加原始字符串标记r修复转义问题后,代码修改为:
data = pd.read_csv(r"C:\Users\Dell\Downloads\8. Netflix Dataset.csv")
再次运行触发文件不存在报错:
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\Dell\\Downloads\\8. Netflix Dataset.csv'
问题原因说明
- 首个unicode转义报错:Windows路径使用
\作为分隔符,而Python普通字符串中\是转义字符,路径片段\Users的开头\U会被Python识别为8位Unicode转义序列的起始标记,后续字符不符合转义规则就会触发报错。添加r标记将字符串转为原始字符串、禁用转义逻辑的修复方式是正确的,这一步已经解决了语法层面的错误。 - 后续FileNotFoundError属于路径匹配类错误,和代码语法无关,是传入的文件路径和文件实际存储位置/文件名不匹配导致。
排查解决步骤(按优先级排序)
- 校验文件实际存储位置
打开资源管理器手动检查:- 文件是否真的存放在
C:\Users\Dell\Downloads路径下,注意浏览器可能修改了默认下载路径,比如存到其他盘符的Downloads文件夹、桌面、文档目录;也可能当前系统登录的用户名不是Dell,实际用户目录路径和预期不符 - 文件名是否完全匹配:Windows默认会隐藏已知类型文件的扩展名,很可能实际文件名为
8. Netflix Dataset.csv.csv;也可能文件名存在空格、标点差异,比如漏了前缀8.、多了版本号后缀
- 文件是否真的存放在
- 用代码获取准确文件信息
在Jupyter中运行以下代码,直接列出目标目录下的所有文件,拿到准确的文件名:
确认文件名后直接用相对路径读取即可,无需写全绝对路径:import os # 切换到目标下载目录 os.chdir(r"C:\Users\Dell\Downloads") # 打印目录下所有文件名称,找到Netflix数据集对应的准确文件名 print(os.listdir())data = pd.read_csv("你查到的准确文件名.csv") - 快速获取正确路径
不想手动排查的话,可以直接在资源管理器找到目标CSV文件,按住Shift右键点击文件,选择「复制为路径」,把复制到的完整路径直接粘贴到read_csv的参数中即可,注意区分代码字符串引号和复制路径自带的引号,不要重复嵌套。 - 权限校验
如果确认路径、文件名完全正确依然报错,右键点击CSV文件打开「属性-安全」选项卡,确认当前Windows登录账号对该文件、对应上层目录有读取权限。
补充说明:绝对路径不受Jupyter启动工作目录影响,只要路径拼写和实际存储完全一致就可以正常读取,这类报错90%以上都是文件名/路径拼写错误、文件实际不在对应目录导致。
内容的提问来源于stack exchange,提问作者Nikita Singh
相关产品推荐
相关产品推荐

