Посты с тэгом pickle


[Перевод] Опасные pickles — вредоносная сериализация в Python

Всем привет!

Panta rhei и вот уже приближается запуск обновленного курса «Web-разработчик на Python» и у нас остался ещё материал, который мы нашли сильно небезынтересным и коим хотим поделиться с вами.

Чем опасны pickles?

Эти соленые огурчики крайне опасны. Я даже не знаю, как объяснить, насколько. Просто поверь мне. Это важно, понимаешь?
“Explosive Disorder” Pan Telare

Прежде чем с головой погрузиться в опкод, поговорим об основах. В стандартной библиотеке Python есть модуль под названием pickle (в переводе “соленый огурчик” или просто ”консервация”), который используется для сериализации и десериализации объектов. Только называется это не сериализация/десериализация, а pickling/unpickl


Serialization of objects in Python

Представим на минутку, что в нашей программе скопилось большое количество пухлых массивов и других объектов, над которыми производятся вычисления. Но ведь все они хранятся в памяти во время выполнения программы! Если бы у нас только бы был способ сохранить объекты на диск, а при необходимости быстро достать И он у нас есть!

Для этого нам понадобится стандартный модуль pickle. Создаем словарь, запаковываем его в бинарный файл, сохраняем его на диск, а потом извлекаем. 

Тут следовало бы прояснить конструкцию with и зачем она нужна. По сути, это очень удобный способ обработки исключений - все что находится в теле этого оператора, будет завершенно. А теперь мы попробуем открыть файл и прочитать наш словарик с описанием этого поста.