Вы перезаписываете переменную remain
на каждой итерации цикла for. Вот почему он показывает только последний. Вместо этого вы должны добавлять к строке каждую новую пару ключ-значение. Так как вы не предоставили содержимое book_list.txt
, я сделал себе поддельный словарь, чтобы проверить его.
books = {
"key1": "value1",
"key2": "value2",
"key3": "value3"
}
remain = ""
for k,v in books.items():
remain = remain + str(k+':'+v) + '\n'
print(remain)
Это напечатает:
key3:value3
key2:value2
key1:value1
Итак, ваш окончательный коддолжно быть:
r = open('book_list.txt','r')
lines = r.readlines()
books = dict((line.strip().split(':') for line in lines))
r.close()
remain = ""
for k,v in books.items():
remain = remain + str(k+':'+v) + '\n'
print(remain)