Ваша проблема не столько в том, чтобы найти правильный специальный синтаксис для pd.read_excel
, сколько в том, чтобы знать, с какого листа читать. У Pandas есть ExcelFile
, который инкапсулирует и некоторую основную информацию о файле Excel. Класс имеет свойство sheet_names
, которое сообщает вам, какие листы находятся в файле. (К сожалению, найти документацию по этому классу довольно сложно, поэтому я не могу дать вам ссылку)
valid_sheet_names = ['PVT', 'pvt', 'pivot', 'Pivot']
for f in glob.iglob('../Test/Drawsheet*.xlsx'):
file = pd.ExcelFile(f)
sheet_name = None
for name in file.sheet_names:
if name in valid_sheet_names:
sheet_name = name
break
if sheet_name is None:
continue
data_xlsx = pd.read_excel(f, sheet_name, index_col=None)
...
Однако, это не совсем эквивалентно вашему коду, так как не выполняет 2 вещи:
- Каскад
read_excel
, если выбранный лист не загружается в фрейм данных
- Присвоить приоритет именам листов (например, сначала
PVT
, затем pvt
, затем pivot
и т. Д.)
Я расскажу вам, как справиться с этими двумя проблемами, как того требует ваша программа.