Tablib xlsx文件badZip文件issu

2024-09-30 16:40:26 发布

您现在位置:Python中文网/ 问答频道 /正文

在Windows8中使用tablib库打开xlsx扩展文件时出错。在

python版本-2.7.14

误差如下:

python suit_simple_sheet_product.py
Traceback (most recent call last):
  File "suit_simple_sheet_product.py", line 19, in <module>
    data = tablib.Dataset().load(open(BASE_PATH).read())
  File "C:\Python27\lib\site-packages\tablib\core.py", line 446, in load
    format = detect_format(in_stream)
  File "C:\Python27\lib\site-packages\tablib\core.py", line 1157, in detect_format
    if fmt.detect(stream):
  File "C:\Python27\lib\site-packages\tablib\formats\_xls.py", line 25, in detect
    xlrd.open_workbook(file_contents=stream)
  File "C:\Python27\lib\site-packages\xlrd\__init__.py", line 120, in open_workbook
    zf = zipfile.ZipFile(timemachine.BYTES_IO(file_contents))
  File "C:\Python27\lib\zipfile.py", line 770, in __init__
    self._RealGetContents()
  File "C:\Python27\lib\zipfile.py", line 811, in _RealGetContents
    raise BadZipfile, "File is not a zip file"
zipfile.BadZipfile: File is not a zip file

路径位置如下= 自动下载\fabric\automate\fabric detail\anju'列表.xlsx'


Tags: inpyformatstreamlibpackageslinesite
1条回答
网友
1楼 · 发布于 2024-09-30 16:40:26

Excel.xlsx文件实际上是zip文件。为了使解压缩正常工作,必须以二进制模式打开文件,因此您需要使用以下方法打开文件:

import tablib

BASE_PATH = r'c:\my folder\my_test.xlsx'
data = tablib.Dataset().load(open(BASE_PATH, 'rb').read())

print data

在字符串之前添加r,以阻止Python尝试解释路径中的反斜杠字符。在

相关问题 更多 >