Как отобразить содержимое файла от высшего к низшему

option= input("alphabetically(a), high to low(b)")
if option == "a":
    with open('Class4.txt', 'r') as r:
        for line in sorted(r):
            print(line)

elif option == "b":
            def score(line):
                return int(line.split(',')[1])

            with open('Class4.txt', 'r') as r:
                for line in sorted(r, key=score, reverse=True):
                    print(line) 

Я был в состоянии отображать в алфавитном порядке, но не мог отображать от высокого до низкого файла класс 4 содержит имя переменной и счет

АБ 9

я 4

б 6

a10

1 ответ

Файл содержит пустые строки, и вы пытаетесь разбить его на список и получаете доступ ко второму элементу. Вот почему вы получаете IndexError. Так что игнорируйте пустые строки.

А также вы должны сделать line.split(), так как нет запятой

option= input("alphabetically(a), high to low(b)")
if option == "a":
    with open('Class4.txt', 'r') as r:
        for line in sorted(r):
            print(line)

elif option == "b":
        def score(line):
            if line != '\n':
                return int(line.split()[1])

        with open('Class4.txt', 'r') as r:
            for line in sorted(r, key=score, reverse=True):
                print(line) 
Другие вопросы по тегам