Pandas+glob批量转xlsx为csv时报xfid参数错误如何解决
问题原因
你遇到的报错是openpyxl依赖库与pandas版本不兼容导致的:当前环境下的openpyxl版本无法识别部分xlsx文件样式表中的xfid参数,引发解析失败。
解决方案
- 方案一:升级openpyxl到最新版本
直接执行终端命令更新依赖即可,是最通用的解决方法:
pip install --upgrade openpyxl
升级完成后重新运行原有代码,绝大多数场景下报错会消失。
- 方案二:更换xlsx读取引擎
如果升级openpyxl后仍存在报错,可改用兼容性更好的calamine引擎读取文件,该引擎对各类非常规格式xlsx的适配能力远高于openpyxl:
- 先安装对应依赖:
pip install python-calamine
- 修改原有代码中读取Excel的行,指定引擎参数:
df = pd.read_excel(excel, engine='calamine')
- 额外优化建议
你原有代码中生成csv文件名的逻辑存在隐患:如果xlsx文件名本身包含.字符,split('.')[0]会错误截断文件名,建议改用os.path模块处理文件名:
import os # 替换原有out = excel.split('.')[0]+'.csv'的行 out = os.path.splitext(excel)[0] + '.csv'
内容的提问来源于stack exchange,提问作者mcm
相关产品推荐
相关产品推荐

