Модуль pickle в Python. Помогите разобрать содин случай

Итак, многим известная задача peak hell на pythonchallenge.com

Пытаюсь для себя, на пальцах, разобраться как работает сериализация, но пока в тупике. Я загрузил файл banner.p на ноутбук и начал с ним локально работать. Вот код:

import pickle

with open('banner.p', 'rb') as file:
    banner = pickle.load(file)
print(banner)

with open('new_banner.p', 'wb') as new_file:
    pickle.dump(banner, new_file)

with open('new_banner.p', 'rb') as new_file:
    new_banner = pickle.load(new_file)

print(new_banner)

После его выполнения, первое что не понятно, размер файлов сильно отличается. banner.p - 5 002 байт new_banner.p - 2 198 байт

Второе - это то, что при открытии файла banner.p отображаются строки (lp0 (lp1 (S' ' p2 I95 tp3 а внутри файла new_banner.p просто кракозябры непонятные.

Вывод команд print, тем не менее совершенно одинаковый. Почему?


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