Это может быть достигнуто с помощью следующего кода. Обратите внимание на использование with ... as f
, что означает, что нам не нужно беспокоиться о закрытии файла после его использования. Кроме того, я использовал f-строки (требуется Python 3.6) и enumerate
, чтобы получить номер строки и объединить все в одну строку, которая записывается в выходной файл.
with open("test.txt", "r") as f:
lines_ = f.readlines()
with open("out.txt", "w") as f:
for i, line in enumerate(lines_, start=1):
line = line.strip()
f.write(f"{i} {line} {len(line)}\n")
Вывод:
1 i went to city center, and i bought xbox5 , and some other stuff 64
2 i will go to gym ! 18
Если вы хотите отсортировать строки по длине, вы можете просто поставить следующую строку после первого блока with
:
lines_.sort(key=len)
Это даст результат:
1 i will go to gym ! 18
2 i went to city center, and i bought xbox5 , and some other stuff 64