file_input_path = r"C:\Users\LYS\Desktop\SG-Z-G-vs-SG-4H-G.filter.annot.xls"
print(file_input_path)
# 指定引擎为openpyxl
data = pd.read_excel(file_input_path, header=None, engine='openpyxl')
print(data)
C:\Users\LYS\Desktop\SG-Z-G-vs-SG-4H-G.filter.annot.xls
#怎么解决以下报错
Traceback (most recent call last):
File "C:\Program Files\pycharm\PyCharm 2023.3.2\plugins\python\helpers\pydev\pydevconsole.py", line 364, in runcode
coro = func()
^^^^^^
File "<input>", line 7, in <module>
File "C:\Users\LYS\AppData\Roaming\Python\Python312\site-packages\pandas\io\excel\_base.py", line 495, in read_excel
io = ExcelFile(
^^^^^^^^^^
File "C:\Users\LYS\AppData\Roaming\Python\Python312\site-packages\pandas\io\excel\_base.py", line 1567, in __init__
self._reader = self._engines[engine](
^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\LYS\AppData\Roaming\Python\Python312\site-packages\pandas\io\excel\_openpyxl.py", line 553, in __init__
super().__init__(
File "C:\Users\LYS\AppData\Roaming\Python\Python312\site-packages\pandas\io\excel\_base.py", line 573, in __init__
self.book = self.load_workbook(self.handles.handle, engine_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\LYS\AppData\Roaming\Python\Python312\site-packages\pandas\io\excel\_openpyxl.py", line 572, in load_workbook
return load_workbook(
^^^^^^^^^^^^^^
File "C:\Users\LYS\AppData\Roaming\Python\Python312\site-packages\openpyxl\reader\excel.py", line 465, in load_workbook
reader = ExcelReader(filename, read_only, keep_vba,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\LYS\AppData\Roaming\Python\Python312\site-packages\openpyxl\reader\excel.py", line 132, in __init__
self.archive = _validate_archive(fn)
^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\LYS\AppData\Roaming\Python\Python312\site-packages\openpyxl\reader\excel.py", line 104, in _validate_archive
archive = ZipFile(filename, 'r')
^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\Python312\Lib\zipfile\__init__.py", line 1339, in __init__
self._RealGetContents()
File "C:\Program Files\Python312\Lib\zipfile\__init__.py", line 1406, in _RealGetContents
raise BadZipFile("File is not a zip file")
zipfile.BadZipFile: File is not a zip file
pycharm|报错问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注 以下内容源自超时代AI智能助手,仅供参考,可行性需要自行评估。
- 错误分析
- 从报错信息
zipfile.BadZipFile: File is not a zip file
可以看出,pandas
在使用openpyxl
引擎读取Excel
文件时,将文件当作ZipFile
(因为xlsx
文件本质上是Zip
压缩包格式)来处理,但却发现这个文件不是一个合法的Zip
文件。 - 可能的原因有:
- 文件路径错误:虽然打印出来的文件路径看起来正确,但可能存在隐藏字符或者文件实际上不存在于指定路径。
- 文件损坏:
Excel
文件本身可能已损坏,导致无法被识别为有效的xlsx
文件(因为xlsx
基于Zip
格式)。
- 从报错信息
- 解决方案
- 检查文件路径和文件存在性
- 使用
os.path.exists
函数来检查文件是否真正存在于指定路径。在代码开头添加如下代码:import os if not os.path.exists(file_input_path): print(f"The file {file_input_path} does not exist.")
- 如果文件不存在,需要重新确认文件的实际位置并修正文件路径。
- 使用
- 检查文件是否损坏
- 尝试在
Excel
软件(如Microsoft Excel
或LibreOffice Calc
)中打开该文件。如果文件无法打开或者提示文件损坏,那么需要重新获取一份未损坏的文件副本。 - 如果文件可以在
Excel
软件中正常打开,但仍然报错,可以尝试将文件另存为新的xlsx
文件,然后修改代码中的文件路径指向新保存的文件,再运行代码。例如:# 假设在Excel软件中另存为新文件到相同路径下,新文件名为new_file.xlsx new_file_path = r"C:\Users\LYS\Desktop\new_file.xlsx" data = pd.read_excel(new_file_path, header=None, engine='openpyxl') print(data)
- 尝试在
- 检查依赖库版本兼容性
- 有时候
pandas
、openpyxl
或者Python
本身的版本问题也可能导致这种错误。可以尝试更新pandas
和openpyxl
到最新版本。 - 在命令行中使用
pip
进行更新:pip install --upgrade pandas openpyxl
- 如果使用
Anaconda
环境,可以使用conda
进行更新:conda update pandas openpyxl
- 有时候
- 检查文件路径和文件存在性
解决 无用评论 打赏 举报- 错误分析
悬赏问题
- ¥15 IEd中开关量采样信号通道设计
- ¥45 字符串操作——数组越界问题
- ¥15 Loss下降到0.08时不在下降调整学习率也没用
- ¥15 QT+FFmpeg使用GPU加速解码
- ¥15 为什么投影机用酷喵播放电影放一段时间就播放不下去了?提示发生未知故障,有什么解决办法吗?
- ¥15 来个会搭建付费网站的有偿
- ¥100 有能够实现人机模式的c/c++代码,有图片背景等,能够直接进行游戏
- ¥20 校园网认证openwrt插件
- ¥15 以AT89C51单片机芯片为核心来制作一个简易计算器,外部由4*4矩阵键盘和一个LCD1602字符型液晶显示屏构成,内部由一块AT89C51单片机构成,通过软件编程可实现简单加减乘除。
- ¥15 求GCMS辅导数据分析