В настоящее время я пытаюсь прочитать файл excel с использованием Python 2.7.10 :: Anaconda 2.3.0 (64 бит) в Windows и создания фрейма данных из его содержимого. Вот отрывок из моего кода:BadZipfile Ошибка Pandas XLRD при открытии файла Excel
import argparse
import pandas as pd
# xl.py
# Adding an input argument
parser = argparse.ArgumentParser()
parser.add_argument("-i","--input",help="Input Excel file to generate df",
type=argparse.FileType('r'))
args = parser.parse_args()
# Reading the Excel File
xls = pd.ExcelFile(args.input)
df = xls.parse('Sheet 1')
# printing for debug
print df.head()
При выполнении следующих действий: python xl.py -i test.xlsx
Я получаю ошибку Traceback:
Traceback (most recent call last):
File ".\xl.py", line 11
File "C:\Users\me\Anaconda\lib\site-packages\pandas\io\excel.py", line 194, in __init__
self.book = xlrd.open_workbook(file_contents=data)
File "C:\Users\me\Anaconda\lib\site-packages\xlrd\__init__.py", line 399, in open_workbook
zf = zipfile.ZipFile(timemachine.BYTES_IO(file_contents))
File "C:\Users\me\Anaconda\lib\zipfile.py", line 770, in __init__
self._RealGetContents()
File "C:\Users\me\Anaconda\zipfile.py", line 711 in _RealGetContents
raise BadZipfile, "File is not a zip file"
zipfile.BadZipfile, "File is not a zip file"
Когда я двигаю файл XLSX к 64 бит Сервер GNU/Linux, на котором запущен python 2.7.5. Мне удалось запустить этот скрипт без проблем. Тем не менее, мне нужно, чтобы он работал в окнах, поскольку я буду использовать pyinstaller, чтобы сделать его исполняемым в будущем (т. Е. Удалить позиционные аргументы и позволить людям дважды щелкнуть по нему).
Любая идея, почему Windows сталкивается с проблемой?
Спасибо.
Не значит 'FileType («Р.Б.»)'? –