在xlrd中循环工作簿时出现意外的索引错误

时间:2017-06-23 09:31:13

标签: python excel python-2.7 xlrd xlwt

我有一堆xlsx文件,名称从1到169,例如' 1.xlsx',' 2.xlsx'等等......但是当通过nrows循环读取那些文件时,代码看不到第11个文件中的任何行(第11个文件中的import os, xlwt, xlrd file_dir = 'docs/' files = os.listdir(file_dir) #Open file and, read neaded variables and write them def r_file(path, file): workbook = xlrd.open_workbook(path+file) info_sheet = workbook.sheet_by_index(0) data_sheet = workbook.sheet_by_index(1) #cells with company info print info_sheet.nrows company_name = info_sheet.cell(3,3).value company_leg_adress = info_sheet.cell(4,3).value company_fact_adress = info_sheet.cell(5,3).value #cells with answers question_1 = data_sheet.cell(3,10).value question_1_1 = data_sheet.cell(8,2).value question_1_2 = data_sheet.cell(13,2).value question_2 = data_sheet.cell(18,10).value question_3 = data_sheet.cell(25,10).value question_3_additional = [data_sheet.cell(nrow,10).value for nrow in range(30,48)] question_4 = data_sheet.cell(51,2).value question_5 = data_sheet.cell(56,2).value #get full row in list row_as_list = [company_name,company_leg_adress,company_fact_adress, question_1, question_1_1, question_1_2, question_2, question_3, question_4]+question_3_additional return row_as_list #write companies in file def w_file(companies): wb = xlwt.Workbook() ws = wb.add_sheet('aggr', cell_overwrite_ok=True) for company in companies: row_as_list = r_file(file_dir,str(company)+'.xlsx') for each_index in row_as_list: ws.write(company, row_as_list.index(each_index) , each_index) wb.save('aggregation.xls') companies_amount = [x for x in range(1,170)] w_file(companies_amount) 总是0,而它不是如果你手动打开它并给我IndexError(这些文件不是空的)。

我不知道该代码发生了什么。

  Traceback (most recent call last):
  File "/home/ubuntu/workspace/ex50/bin/writing.py", line 44, in <module>
    w_file(companies_amount)
  File "/home/ubuntu/workspace/ex50/bin/writing.py", line 36, in w_file
    row_as_list = r_file(file_dir,str(company)+'.xlsx')
  File "/home/ubuntu/workspace/ex50/bin/writing.py", line 13, in r_file
    company_name = info_sheet.cell(3,3).value
  File "/usr/local/lib/python2.7/dist-packages/xlrd-1.0.0-py2.7.egg/xlrd/sheet.py", line 401, in cell
    self._cell_types[rowx][colx],
IndexError: list index out of range

运行后,它返回:

3567

它只在第11个文件中出现(无论文件是第11个)。

你能告诉我这件事发生了什么吗?

0 个答案:

没有答案