Jupyter中pd.read_excel停止工作并报错的原因及解决方法
故障原因
你遇到的报错核心是当前环境安装的xlrd版本与Python 3不兼容:
报错栈里的SyntaxError指向xlrd/__init__.py中的print "EXTERNSHEET(b7-):"代码,这是Python 2的无括号print语法,Python 3中无法运行,说明你环境里的xlrd是仅适配Python 2的老旧版本。
你之前的尝试无效的原因:
- 直接修改文件后缀名没有实际作用:源文件本身就是xls二进制格式,修改后缀不会改变文件内部结构
- openpyxl引擎本身不支持读取xls格式,仅支持xlsx/xlsm等新版Excel格式,所以指定openpyxl也无法处理目标文件
解决办法
- 先卸载当前环境的旧版xlrd:
pip uninstall xlrd
- 安装适配Python 3的xlrd稳定版本:
pip install xlrd==1.2.0
该版本是xlrd最后一个同时兼容Python 3、支持xls格式读取的正式版本。
如果不想使用xlrd,也可以先将目标xls文件下载到本地,通过Excel或其他工具转存为标准xlsx格式后,再使用openpyxl引擎读取,示例代码如下:
import pandas as pd xls = pd.read_excel("转存后的文件路径.xlsx", engine="openpyxl")
另外你贴出的代码中pd.ExcelFile(('https://xxx'))多了一层多余的括号,修正为单层括号即可避免语法错误。
内容的提问来源于stack exchange,提问作者paul
相关产品推荐
相关产品推荐

