本地xlsx文件无法导入Google Colab,pandas读取时报TypeError如何解决
报错根源
- 代码错用了
io.StringIO:这个类是用来封装字符串类型的内存IO的,强制要求传入的初始值是字符串,碰到字节流数据就会直接抛类型错误。 - Colab调用
files.upload()上传文件后,uploaded字典里存的对应文件内容是二进制字节流,刚好和StringIO的输入要求不匹配,所以触发了当前的TypeError。 - 另外xlsx本身是带压缩结构的二进制格式Excel文件,压根不该用字符串类的IO去处理。
可直接运行的解决方法
- 方案1:把代码里的
io.StringIO替换成io.BytesIO——这个类是专门用来处理二进制字节流的内存IO类,完全适配Colab上传返回的字节数据,改完的读取代码是:
df = pd.read_excel(io.BytesIO(uploaded['File_Name.xlsx']))
- 方案2:Colab跑完
files.upload()选完文件上传后,会自动把上传的文件落到当前运行环境的工作目录里,根本不需要手动拼IO对象,直接传文件名就能读:
# 把后面的文件名换成你实际上传的xlsx文件全名就行 df = pd.read_excel("File_Name.xlsx")
额外避坑:如果运行读取代码时弹错提示缺少openpyxl,只要在Colab单元格里跑一行安装命令就好——pandas读xlsx格式必须依赖这个库,部分Colab环境不会自动预装:
!pip install openpyxl
内容的提问来源于stack exchange,提问作者user14650114
相关产品推荐
相关产品推荐

