len пишет больше символов чем надо

Изучаю язык Python и решил создать небольшую программу. Её суть: дан список книг в текстовом файле, каждая книга написана через строчку. Программа пишет вместо полного названия лишь первую букву книги и количество её символов. Получается своеобразный "код" книги. Я придумал 3 названия: Harry Potter, Book, Another Book. (Каждое название на своей строчке, запятые и точка не считаются) Написал код для программы.

file = open('books.txt')
for line in file:
    print(line[0] + str(len(line)))
file.close()

Результат:

H13
B5
A12

В строчке Harry Potter - 12 символов, а пишет почему-то 13. Тоже самое и со вторым словом. А с третьим почему-то все нормально. В чём проблема?


Ответы (1 шт):

Автор решения: KoVadim

Все потому что с файла эти имена прочитались с переводом строки. А в последней строке перевод не поставили вот там его и нет. Но можно удалить, например, через rstrip. Можно посмотреть ответ здесь https://stackoverflow.com/questions/275018/how-can-i-remove-a-trailing-newline

→ Ссылка