Использование 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 все работает нормально.

Другие вопросы по тегам