Python使用pandas读取Excel报BadZipFile: File is not a zip file如何解决
BadZipFile: File is not a zip file 报错解决方案
该报错的核心原因:.xlsx格式的文件本质是ZIP压缩包,当前你读取的文件不符合ZIP格式规范,可按以下步骤逐一排查解决:
- 确认文件实际格式与后缀匹配
很多情况下文件只是被人为修改为.xlsx后缀,实际是其他格式:- 如果是CSV格式(用记事本打开文件可以看到明文逗号分隔的内容),直接改用
pd.read_csv()读取即可 - 如果是老版本
.xls格式,需要先安装适配版本的xlrd依赖:pip install xlrd==1.2.0,再修改代码指定引擎读取:
import pandas as pd df = pd.read_excel('fichier.xlsx', engine='xlrd') print(df.head()) - 如果是CSV格式(用记事本打开文件可以看到明文逗号分隔的内容),直接改用
- 确认文件未损坏
尝试用本地Excel软件打开目标文件,如果软件提示文件损坏,说明文件在下载/传输过程中出现了丢包,重新获取完整文件即可。 - 确认文件路径正确
你可以打印当前Python工作目录,核对文件是否存放在对应路径下:
也可以直接传入文件的绝对路径进行读取,避免相对路径匹配错误。import os print(os.getcwd()) - 确认文件未加密
加密后的Excel文件无法被pandas直接解析,你可以先手动打开文件取消密码保护,再执行读取操作。
内容的提问来源于stack exchange,提问作者Abir2563
相关产品推荐
相关产品推荐

