熊猫读取 excel 导致“不是 zip 文件”

Posted

技术标签:

【中文标题】熊猫读取 excel 导致“不是 zip 文件”【英文标题】:pandas reading excel results in "not a zip file" 【发布时间】:2020-12-15 04:57:36 【问题描述】:

我尝试将 xlsx 读入数据框:

itut_ir = pd.read_excel('C:\\Users\\Administrator\\Downloads\\reportdata.xlsx')

print(itut_ir.to_string())

我收到这个:

Traceback(最近一次调用最后一次): 文件 "C:\Users\Administrator\eclipse-workspace\Reports\GOW\Report.py", 第 44 行,在 df = pd.read_excel('C:\Users\Administrator\Downloads\reportdata.xlsx') 文件 "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\pandas\io\excel_base.py", 第 304 行,在 read_excel 中 io = ExcelFile(io, engine=engine) 文件 "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\pandas\io\excel_base.py", 第 824 行,在 init 中 self._reader = self.enginesengine 文件“C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\pandas\io\excel_xlrd.py”, 第 21 行,在 init 中 super().init(filepath_or_buffer) 文件 "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\pandas\io\excel_base.py", 第 353 行,在 init 中 self.book = self.load_workbook(filepath_or_buffer) 文件 "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\pandas\io\excel_xlrd.py", 第 36 行,在 load_workbook 中 返回 open_workbook(filepath_or_buffer) 文件 "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\xlrd_init.py", 第 117 行,在 open_workbook 中 zf = zipfile.ZipFile(filename) 文件 "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\zipfile.py", 第 1222 行,在 init 中 self._RealGetContents() 文件 "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\zipfile.py", 第 1289 行,在 _RealGetContents raise BadZipFile("File is not a zip file") zipfile.BadZipFile: File is not a zip file

有人有想法吗?文件似乎没有损坏,我可以用 Excel 打开它。

谢谢!

*** 更新 *** 正在从 FTP 下载产生错误的文件。打开原始文件有效......如果这给你一个提示:)谢谢

【问题讨论】:

不需要使用open,只需要文件的路径即可。试试看:pd.read_excel('C:\\Users\\Administrator\\Downloads\\reportdata.xlsx', sheet_name='Details', skiprows=4) 抱歉,我被另一个错误误导了。分解导入我仍然得到 zip 错误: itut_ir = pd.read_excel('C:\\Users\\Administrator\\Downloads\\reportdata.xlsx') reportdata.xlsx 是原始文件吗?关于this question 打开和保存文件可能会有所帮助。 您好,正在从 FTP 服务器下载文件。我可以通过excel打开它。不知道你的意思是打开和保存谢谢 xlsx基本上是一个zip文件,所以下载的时候很有可能是文件坏了。 【参考方案1】:

不久前,我在 LibreOffice 中创建的 XLSX 也遇到了同样的问题。

解决方案是检查 XLSX 以确保它没有损坏。就我而言,加载以前版本的 XLSX 文件可以解决问题。

【讨论】:

以上是关于熊猫读取 excel 导致“不是 zip 文件”的主要内容,如果未能解决你的问题,请参考以下文章

无法用熊猫读取 excel 文件

熊猫。如何从 ZIP 存档中读取 Excel 文件

时间为 00:00 时,熊猫读取 excel 返回类型对象

读取excel文件时的熊猫数据框和字符编码

[如何读取Excel文件而不将其第一行作为标题?熊猫,Python [重复]

读取目录内容而不是 zip 文件内容