Как подсказал @Jabb в своем первоначальном комментарии, правильный путь к go - попробовать / исключить. Хотя его пример немного усложнен, например, нет необходимости создавать метод для установки доступных листов, вы можете просто использовать book.sheet_names()
все же (чтобы проверить, существует ли лист с данным именем). Но, как я уже сказал, нет необходимости проверять использование блока if / elif / else, просто используйте try / исключением.
import xlrd
file_name = r'some_path\some_file.xls' # replace with your file
class Workbook_Reader:
def __init__(self, wb, lookup_sheets=('Purchase History', 'Previous Purchases')):
self.wb = xlrd.open_workbook(wb)
self.lookup_sheets = lookup_sheets
@property
def purchase_history(self): # this property will return the respective sheet or None
for sheet_name in self.lookup_sheets:
try:
return self.wb.sheet_by_name(sheet_name)
except xlrd.biffh.XLRDError:
pass
foo = Workbook_Reader(file_name)
for row in foo.purchase_history.get_rows():
for cl in row:
print(cl.value)
Обратите внимание, что итерирование по lookup_sheets, first seen wins