Использование XLRD в Ironpython
Я пытаюсь использовать библиотеку XLRD в IronPython 2.7
При самой основной операции открытия файла.xls (формат 2003) я получаю следующую ошибку, и я не уверен, как ее исправить:
workbook = xlrd.open_workbook(xlsfile)
File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\xlrd\__init__.py", line 426, in open_workbook
TypeError: sequence item 0: expected bytes or byte array, str found
есть идеи? Я хотел бы использовать xlrd, если это возможно, но кажется, что могут быть некоторые проблемы с совместимостью. При использовании интерпретатора Python 2.7 файл открывается без проблем..
2 ответа
Я боролся с этим в течение некоторого времени в XLRD 0.9.2. ни bytes
, bytearray
, str
или даже читая файл вручную и передавая его как file_contents
работал.
Наконец я понизил xlrd до версии 0.8.0 и... он работает.:)
По какой-то причине кажется, что open_workbook
требует, чтобы имя файла было в байтах, а не в виде строки. Пытаться:
workbook = xlrd.open_workbook(bytes(xlsfile))
Это проблема, с которой вы, вероятно, столкнетесь: строки IronPython по умолчанию являются Unicode (например, Python 3), а не байтовыми строками, как Python 2.
Я пытаюсь добавить xlrd в ironpython 2.7 в CODESYS и сталкиваюсь с той же проблемой. Однако после попытки версии 0.8.0 все работает нормально.