列表索引超出了python的范围

import glob import xlrd from xlwt import Workbook wb = Workbook() for file_name in glob.glob("foo*.xls"): wb_orig = xlrd.open_workbook(file_name) for ws_orig in wb_orig.sheets(): ws = wb.add_sheet('{0} {1}'.format(file_name, ws_orig.name)) for rx in range(ws_orig.nrows): for cx in range(ws_orig.ncols): ws.write(rx, cx, ws_orig.cell_value(rx,cx)) wb.save("mefoo.xls") 

我以许多方式尝试上述代码合并多个Excel表单成一个工作簿……..这段代码给错误

 Traceback (most recent call last): File "E:\my python\Internship\mergestackoverflow.py", line 16, in <module> wb.save("mefoo.xls") File "C:\Python27\lib\site-packages\xlwt\Workbook.py", line 634, in save doc.save(filename, self.get_biff_data()) File "C:\Python27\lib\site-packages\xlwt\Workbook.py", line 615, in get_biff_data self.__worksheets[self.__active_sheet].selected = True IndexError: list index out of range 

请帮我解决错误..

您可以得到该IndexError的唯一方法是如果输出工作簿中没有工作表。

你需要检查你的glob.glob("foo*.xls") ; 它看起来像没有返回文件。

我发现的解决scheme是不使用glob中的绝对path。

 for file_name in glob.glob("C://your//full//path//here//foo*.xls"): #population/merging code here wb.save("mefoo.xls") 

至于为什么解决了这个问题,我不知道。 但我希望这有助于某人。