Когда вы нажимаете пустую последнюю строку, то есть ''
, результат mean_temp.readline().split(',')
равен ['']
, а не []
, следовательно, ваш цикл продолжается, и вы получаете ошибку индекса.Вместо этого вы можете проверить len
:
while len(city_temp) == 4:
print(headings[0].capitalize(), "of", city_temp[0], headings[2], "is", city_temp[2], "Celsius")
city_temp = mean_temp.readline().split(',')
Однако лучший способ справиться с этим - использовать правильный цикл for
и считыватель csv
:
import csv
with open('mean_temp.txt') as f:
reader = csv.reader(f)
header = next(reader)
for city in reader:
print(header[0].capitalize(), "of", city[0], header[2], "is", city[2], "Celsius")
(Формат файла будет работать даже лучше с DictReader
, но способ печати этой строки - нет.)