python-使用xlwt创建同一文件后,使用xlrd打开XLS文件时出错

python-使用xlwt创建同一文件后,使用xlrd打开XLS文件时出错,python,excel,xls,xlrd,xlwt,Python,Excel,Xls,Xlrd,Xlwt,我的脚本使用xlwt模块创建XLS文件(其中填充了一些数据),并将其保存在工作目录中。此操作的第一部分已成功完成。在同一脚本中,下一部分是读取保存的XLS文件,并基于该文件创建另一个填充了一些值的XLS文件。一旦第一个XLS被保存,我会收到一个错误,使用xlrd读取保存的XLS,如下所示 ERROR: Traceback (most recent call last): ERROR: File "C:\Esri_SCRIPTS\GDB_FC_SourceMapping_Service_V6\

我的脚本使用xlwt模块创建XLS文件(其中填充了一些数据),并将其保存在工作目录中。此操作的第一部分已成功完成。在同一脚本中,下一部分是读取保存的XLS文件,并基于该文件创建另一个填充了一些值的XLS文件。一旦第一个XLS被保存,我会收到一个错误,使用xlrd读取保存的XLS,如下所示

ERROR: Traceback (most recent call last):
ERROR:   File "C:\Esri_SCRIPTS\GDB_FC_SourceMapping_Service_V6\GDB_FC_SourceMapping_V6_Dev.py", line 200, in <module>
ERROR:     wb=xlrd.open_workbook(CurWrokDir + '\DataSources.xls')
ERROR:   File "C:\Python26\ArcGIS10.0\lib\site-packages\xlrd\__init__.py", line 454, in open_workbook
ERROR:     bk.parse_globals()
ERROR:   File "C:\Python26\ArcGIS10.0\lib\site-packages\xlrd\__init__.py", line 1473, in parse_globals
ERROR:     self.handle_sst(data)
ERROR:   File "C:\Python26\ArcGIS10.0\lib\site-packages\xlrd\__init__.py", line 1446, in handle_sst
ERROR:     self._sharedstrings = unpack_SST_table(strlist, uniquestrings)
ERROR:   File "C:\Python26\ArcGIS10.0\lib\site-packages\xlrd\__init__.py", line 1663, in unpack_SST_table
ERROR:     nchars = local_unpack('<H', data[pos:pos+2])[0]
error: unpack requires a string argument of length 2
ERROR:
ERROR: unpack requires a string argument of length 2
错误:回溯(最近一次呼叫最后一次):
错误:文件“C:\Esri\U SCRIPTS\GDB\u FC\u SourceMapping\u Service\u V6\GDB\u FC\u SourceMapping\u V6\u Dev.py”,第200行,在中
错误:wb=xlrd.open_工作簿(CurWrokDir+'\DataSources.xls')
错误:文件“C:\Python26\ArcGIS10.0\lib\site packages\xlrd\\ uuuu init\uuuu.py”,第454行,在OpenU工作簿中
错误:bk.parse_globals()
错误:parse_globals中的文件“C:\Python26\ArcGIS10.0\lib\site packages\xlrd\\ uuu init\uuu.py”,第1473行
错误:self.handle\u sst(数据)
错误:文件“C:\Python26\ArcGIS10.0\lib\site packages\xlrd\\ uuuu init\uuuuu.py”,第1446行,在handle\u sst中
错误:self._sharedstrings=unpack_SST_表(strlist,uniquestrings)
错误:文件“C:\Python26\ArcGIS10.0\lib\site packages\xlrd\\ uuu init\uuuu.py”,第1663行,在unpack\u SST\u表中

错误:nchars=local_unpack(“通过
xlwt
写入文件并通过
xlrd
重新读取文件没有根本问题,如本例所示:

import xlwt
import xlrd

# Write an Excel file.
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('Sheet1')

worksheet.write(0, 0, 'Hello')
worksheet.write(1, 0, 12345)

workbook.save('test.xls')

# Now read it back in.
workbook = xlrd.open_workbook('test.xls')
worksheet = workbook.sheet_by_name('Sheet1')

print worksheet.row(0)[0].value
print worksheet.row(1)[0].value
印刷品:

$ python reread.py
Hello
12345.0
因此,由您调试程序中导致错误的问题是什么


如果您在Excel中保存文件后没有看到问题,这很可能是
xlwt
中的某个问题,但是您需要再次证明这一点,或者为开发人员提供调试它的方法。

大家好,我不确定这是否是发布此python问题的正确位置,但是有人可以帮助我解决此问题吗?此处提供的信息不足,无法帮助您进行调试。您应该提供您正在使用的
xlwt
xlrd
程序的小而完整的示例。不幸的是,我不被允许共享为我的组织开发的代码,但如果满足需要,我可以提供更多描述性详细信息。我正在创建一个n XLS1.xls位于位置“a”(例如)处,带有xlwt模块。我正在向该XLS1.xls添加一张表,并将其与地理数据库的名称一起保存(例如。GDB1@GDB.gdb-->XLS1.xls中的工作表名称,我正在使用脚本扫描(即处理地理数据库中的数据)。我正在填充一些值(多行多列)在XLS1中,通过扫描地理数据库、地图文档和发布的服务。位置“a”处的此XLS1在末尾通过“MyWorkbook.save(CurWrokDir+'XLS1')保存。创建此XLS1.xls with sheet(具有上述地理数据库名称)后,脚本的第二部分将尝试读取位置“a”处的相同XLS1.xls“使用xlrd,这就是我得到这个错误的原因。