Tablib xlsx file badzip проблема с файлом
Я получаю сообщение об ошибке при открытии файла расширения xlsx в Windows 8 с помощью библиотеки tablib.
версия 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
путь к файлу выглядит следующим образом = BASE_PATH = 'C:\Users\anju\Downloads\automate\catalog-5090 подробная информация о ткани и прайс-лист.xlsx'
1 ответ
Превосходить .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 не пытался интерпретировать символы обратной косой черты на вашем пути.