2

我正在尝试在 IronPython 2.7 中使用 XLRD 库

在打开 .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 解释器时,文件打开没有问题..

4

3 回答 3

3

我在 xlrd 0.9.2 中为此奋斗了一段时间。bytes, bytearray, str, 甚至手动读取文件并将其按工作file_contents传递。

最后,我将 xlrd 降级到 0.8.0 版,然后......它正在工作。:)

于 2013-10-31T23:40:03.290 回答
1

无论出于何种原因,似乎都open_workbook要求文件名以字节为单位,而不是字符串。尝试:

workbook = xlrd.open_workbook(bytes(xlsfile))

这是您可能经常遇到的问题:IronPython 的字符串默认是 Unicode(如 Python 3),而不是像 Python 2 那样的字节字符串。

于 2013-05-15T22:50:13.820 回答
-1

我正在尝试在 CODESYS 中将 xlrd 添加到 ironpython 2.7 并遇到同样的问题。但是,在尝试 0.8.0 版本后,它工作正常。

于 2020-07-24T12:25:21.810 回答