Python读取CSV文件报No such file or directory错误如何解决
Python读取CSV报FileNotFoundError解决方法
这个报错的核心原因是Python解释器无法在传入的路径下找到目标文件,按以下步骤逐一排查即可解决:
- 第一步先确认文件真实后缀正确:Windows系统默认隐藏已知类型文件的扩展名,你看到的
Book1.csv大概率实际是Book1.csv.txt这类带隐藏后缀的文件。打开资源管理器「查看」选项卡,勾选「文件扩展名」选项,确认目标文件的真实后缀确实是.csv,而非被隐藏后缀的其他格式文件。 - 检查绝对路径的写法正确性:你贴出的报错信息里路径出现了
C:\Users\******Desktop\Book1.csv片段,用户名目录和Desktop目录之间缺少路径分隔符\,属于典型的路径书写错误。不要手动输入完整绝对路径,直接打开存放CSV的文件夹,点击地址栏复制完整的文件夹路径,再拼接上正确的文件名即可。另外注意你原来的代码直接打印csv.reader()返回的对象只能得到内存地址,要遍历迭代器才能拿到实际的CSV内容,参考正确写法:
import csv # 路径从资源管理器地址栏直接复制,避免手动输入错误 file_path = r"C:\Users\你的实际用户名\Desktop\Book1.csv" with open(file_path, encoding='utf-8') as file: csv_data = csv.reader(file) # 遍历迭代器打印每行内容 for row in csv_data: print(row)
- 解决相对路径不生效的问题:相对路径是相对于Python进程的运行工作目录,而非脚本文件本身的存放目录,如果你在IDE中运行代码、或者在其他目录下通过命令行执行脚本,工作目录和脚本目录不一致就会找不到同目录文件。稳妥读取脚本同目录文件的写法是先获取脚本自身的所在目录,再拼接文件名,自动适配不同操作系统的路径规则:
import csv import os # 获取当前脚本文件的真实所在绝对目录 script_dir = os.path.dirname(os.path.abspath(__file__)) # 拼接同目录下的CSV文件路径 file_path = os.path.join(script_dir, "Book1.csv") with open(file_path, encoding='utf-8') as file: csv_data = csv.reader(file) for row in csv_data: print(row)
- 编码兼容兜底:如果路径确认正确但仍报编码错误,可以将
encoding参数改为utf-8-sig,适配Windows环境下导出的带BOM头的UTF-8格式CSV文件。 - 快速校验路径正确性:把代码中写的文件完整路径复制到资源管理器地址栏,按下回车如果能直接打开目标文件,说明路径正确;如果提示找不到文件,说明路径书写有误或者文件不存在。
内容的提问来源于stack exchange,提问作者sumanth shetty
相关产品推荐
相关产品推荐

