Elif声明检查工作表范围

时间:2016-07-06 21:51:47

标签: python

我有几个Excel文件,其中一些有10个工作表,其他有8个。在我的代码中我循环浏览所有文件并选择2到9的工作表范围。但是,因为我有一些8张工作簿我想做这些工作簿中的相同循环或操作,而不是获取“sheet = wb.worksheets [n] IndexError:列表索引超出范围“。我可以用elif来完成这个吗?

import glob
import openpyxl

path = 'C:/ExcelFolder/*.xlsx'
files = glob.glob(path)
for file in files:
  wb = openpyxl.load_workbook(file)
  Sheet = wb.worksheets
  if Sheet is range(2, 9):
    for n in range(2, 9):
        sheets = wb.worksheets[n]
        #Do something
  elif Sheet is range(2, 5):
    for n in range(2, 5):
        sheets = wb.worksheets[n]
        #Do something

1 个答案:

答案 0 :(得分:2)

if...elif并非完全必要。

您可以使用itertools.islice 切片 Sheets

from itertools import islice

for file in files:
    wb = openpyxl.load_workbook(file)
    Sheets = wb.worksheets
    for sheet in islice(Sheets, 2, 9):
        # do something with sheet

如果Sheets长度不超过9,则迭代将停留在Sheets的长度,例如5