Как добавить номера строк в печатную таблицу - PullRequest
0 голосов
/ 17 ноября 2018

У меня есть текстовый файл, который называется score.txt , содержимое:

dave 100
ben 50
mary 5
hello 75
elwin 360
didier 1000
ken 85
jibril 79
heyo 900
alan 23
wy 57
sam 99

Я использую этот код:

with open ("score.txt") as f:
    for line in reversed(sorted([line.rstrip().split() for line in f],key=lambda x : int(x[1]) )):
        d=("\t".join(line))
        print(d)

with open("scoreboard_sorted.txt","a") as file:
    file = file.write(d+"\n")

with open("scoreboard_sorted.txt") as myfile:
    output=myfile.readlines()[0:10]
    print(output)

результаты такие же, как в Scoreboard_sorted.txt :

didier  1000
heyo    900
elwin   360
dave    100
sam     99
ken     85
jibril  79
hello   75
wy      57
ben     50
alan    23
mary    5

и для кода:

with open("scoreboard_sorted.txt") as myfile:
    output=myfile.readlines()[0:10]
    print(output)

Результат:

['didier\t1000\n', 'heyo\t900\n', 'elwin\t360\n', 'dave\t100\n', 'sam\t99\n', 'ken\t85\n', 'jibril\t79\n', 'hello\t75\n', 'wy\t57\n', 'ben\t50\n']

Хорошо, проблема в том, что я хочу напечатать так:

1. didier   1000
2. heyo     900
3. elwin    360
4. dave     100
5. sam      99
6. ken      85
7. jibril   79
8. hello    75
9. wy       57
10.ben      50

Должен ли я добавить счетчик внутри?

1 Ответ

0 голосов
/ 17 ноября 2018

Предполагая, что содержимое находится в файле "txt", следующий код должен работать в python. (хотя это не сохраняет пробелы)

with open ("txt") as f:
    for line in sorted(
        [line.rstrip().split() for line in f],
        key=lambda x : int(x[1])
    ):
        print(" ".join(line))

Просто, в cmdline вы можете сделать что-то вроде ниже, сохраняя пробелы

sort -k 2 -g txt
...