使用pandas导入CSV文件时报找不到文件或UnicodeError错误如何解决
pandas导入CSV两类报错的解决方案
1. 找不到文件报错的常见原因及修复
- 路径拼写错误:文件名、目录名存在拼写偏差,或存在多余空格;Mac、Linux系统对路径大小写敏感,需确认大小写完全匹配
- 相对路径与工作目录不匹配:如果使用相对路径导入,可先执行
import os; print(os.getcwd())查看Python当前运行的工作目录,要么将CSV文件放到打印出的目录下,要么直接写文件的绝对路径:Windows系统建议用原始字符串写法避免转义符问题,比如r"C:\Users\用户名\Desktop\数据.csv";Mac/Linux直接写完整路径比如/Users/用户名/Desktop/数据.csv即可 - 文件后缀被系统隐藏:Windows默认隐藏已知文件后缀,可能出现你以为文件是
数据.csv,实际是数据.csv.txt的情况,打开系统的文件扩展名显示功能确认文件名即可
2. UnicodeError编码报错的常见原因及修复
该报错本质是CSV文件的实际编码和pandas默认使用的utf-8编码不匹配,常见修复方式如下:
- 优先尝试常用编码参数:Windows系统导出的CSV大多是
gbk编码,带BOM的UTF-8文件可以用utf-8-sig编码,部分特殊文件可以尝试cp1252编码,写法参考:pd.read_csv("文件路径", encoding="gbk") - 不知道文件编码时可以用第三方库检测:先执行
pip install chardet安装检测库,再运行以下代码获取文件编码:
把输出的编码值填入import chardet with open("你的文件路径", "rb") as f: print(chardet.detect(f.read())["encoding"])read_csv的encoding参数即可 - 临时应急可以添加
encoding_errors="ignore"参数忽略无法解码的字符,该方法可能丢失少量异常字符内容,非必要不推荐使用
内容的提问来源于stack exchange,提问作者Ashley Marshall
相关产品推荐
相关产品推荐

