Mac系统下使用Python的pandas读取xlsx文件报错如何解决
解决方案
出现ValueError("File is not a recognized excel file")报错的核心原因是pandas无法识别文件的实际格式,和后缀名无关,无需转换为xls格式,按以下步骤排查即可:
1. 补全读取xlsx的依赖库并显式指定引擎
pandas读取xlsx格式文件依赖openpyxl库,部分版本不会默认预装,先执行安装命令:
pip install openpyxl
修改读取代码,显式指定读取引擎:
df_names = pd.read_excel(r'path/NAMES.xlsx', sheet_name="Sheet1", engine="openpyxl")
2. 排查文件本身有效性
- 手动用Excel、WPS等办公软件打开目标xlsx文件,确认可以正常访问没有损坏提示,若文件损坏直接重新导出/获取源文件即可
- 确认文件不是其他格式改后缀伪装为xlsx:比如实际是csv、txt格式直接修改后缀得到的文件,可以用文本编辑器打开文件头部验证,如果是其他格式直接用对应读取方法即可,比如csv格式用
pd.read_csv()读取
3. 排查路径问题
确认文件路径没有特殊字符、中文编码问题,可将文件移动到无中文、无空格的纯英文路径下(比如直接放在根目录)测试读取,排除路径编码导致的读取异常
4. 升级相关依赖版本
旧版本pandas和openpyxl对新版Office生成的xlsx格式兼容性差,可执行命令升级到稳定版:
pip install --upgrade pandas openpyxl
内容的提问来源于stack exchange,提问作者daniel
相关产品推荐
相关产品推荐

