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