Как открыть файл pickle

Обновлено: 28.06.2024

Объекты Python можно сохранить (или сериализовать) в виде файлов pickle для последующего использования, а поскольку кадры данных pandas также являются объектами Python, вы сохраняете их как файлы pickle. Как правило, мы используем данные, хранящиеся в файлах csv, excel или text, для чтения в виде фреймов данных. В этом руководстве мы рассмотрим, как читать файл pickle как фрейм данных в pandas.

Как использовать pandas для чтения файлов рассола?

Вы можете использовать функцию pandas read_pickle() для чтения объектов pickled pandas (файлы .pkl) в виде фреймов данных в python. Подобно чтению файлов csv или excel в pandas, эта функция возвращает кадр данных pandas данных, хранящихся в файле. Ниже приведен синтаксис:

Здесь my_data.pkl — это файл pickle, в котором хранятся данные, которые вы хотите прочитать.

Соблюдайте осторожность при работе с файлами pickle. Модуль pickle не защищен. Расшифровывайте только те данные, которым вы доверяете. Можно создать вредоносные данные рассола, которые будут выполнять произвольный код во время распаковки. См. здесь.

Пример

Давайте рассмотрим пример использования функции read_pickle() в pandas. Во-первых, мы создадим образец фрейма данных, который мы сохраним локально как файл рассола, используя функцию pandas to_pickle().

Выше показан кадр данных pandas, представляющий пример портфеля акций. Давайте теперь продолжим и сохраним эти данные как файл рассола локально, для этого мы будем использовать функцию pandas to_pickle().

Теперь, когда у нас есть фрейм данных, сохраненный как файл рассола с именем porfolio.pkl , мы можем продолжить и прочитать его как фрейм данных, используя функцию read_pickle() в pandas.

Вы можете видеть, что данные файла pickle успешно загружаются в виде кадра данных pandas. Аналогичным образом вы можете использовать функцию pandas read_pickle() для чтения фреймов данных, сериализованных как объекты pickle. Но убедитесь, что вы используете файлы pickle только из надежных источников.

Подробнее о функции read_pickle() в pandas. Обратитесь к его документации.

На этом мы подошли к концу этого руководства. Примеры кода и результаты, представленные в этом руководстве, были реализованы в Jupyter Notebook с ядром python (версия 3.8.3) с пандами версии 1.0.5

Подпишитесь на нашу рассылку, чтобы получать более информативные руководства и учебные пособия.
Мы не рассылаем спам, и вы можете отказаться в любое время.

Должно быть, у вас в голове много вопросов относительно файлов pickle.? Эта статья о том, как читать файл рассола в python. В нем будут рассмотрены основные сведения о файлах pickle и пошаговый процесс их правильного чтения. Итак, что такое модуль рассола или травление?

Что такое модуль рассола или травление?

Модуль pickle или pickle — это процесс сериализации и десериализации объектов Python в поток байтов. Противоположностью травлению является рассол. Pickling используется для хранения объектов Python, таких как классы, словари, списки и т. д. Это полезно при анализе данных при выполнении рутинных задач с данными, таких как предварительная обработка. Когда вы работаете со специфическими типами данных Python, такими как объекты, классы или словари, травление имеет большой смысл. Он специально используется для хранения обученных алгоритмов машинного обучения, чтобы нам не приходилось постоянно переобучать их каждый раз, когда мы хотим их использовать. Вместо этого мы просто сохраняем обученный алгоритм машинного обучения один раз, сохраняем его в переменной, а затем консервируем. Таким образом, вы можете сэкономить много времени, даже если у вас большой объем данных, загрузка которых в память занимает много времени.

Загрузка обработанных данных может занять всего 5 секунд, а загрузка новых данных может занять от 5 до 10 минут. Следовательно, лучше замариновать набор данных, а затем загрузить его. Этот процесс будет намного быстрее в 50-100 раз, а иногда даже больше, в зависимости от размера набора данных. Давайте посмотрим на простую иллюстрацию того, как сохранить словарь в файле pickle.

Пример 1:

Чтобы сохранить словарь в файле pickle, сначала импортируйте pickle, чтобы использовать его. После этого определите свой пользовательский словарь. Следующий шаг — открыть файл и использовать pickle.dump(), чтобы поместить или записать словарь в открытый файл и закрыть его.

рассол . дамп(favcolor, открыть("color.p", "wb"))

Текстовое описание автоматически генерируется

Пример 2:

Цель этой статьи — объяснить, как читать файл pickle. Приведенный ниже код поможет вам прочитать данные. Первый шаг — открыть файл с данными словаря с помощью команды open(), загрузить все данные в переменную с помощью команды load() и сохранить их в новой переменной. Затем вы можете распечатать переменную, чтобы увидеть данные словаря.

фавколор = рассол . загрузить (открыть ("color.p", "rb"))

Автоматическое текстовое описание

Вот результат.

Текстовое описание автоматически генерируется

Пример 3:

Мы покажем вам, как читать файл pickle с помощью функции read_from_pickle. Функция read_from_pickle является частью pandas 0.22. Вот пример того, как читать и писать файл рассола. Если вы продолжаете добавлять данные в файл, вам нужно читать из файла, пока вы не получите то, что ищете. Вот пример использования read_from_pickle для чтения файлов pickle.

import os
import pickle
PFILE = 'pickle.dat'
def main() :
add_to_pickle ( PFILE , 'Christmas' )
add_to_pickle ( PFILE , Новый год')
add_to_pickle(PFILE, '2022')
add_to_pickle(PFILE, b' суббота')
add_to_pickle(PFILE, 456.789)

для элемента в read_from_pickle(PFILE):
print(repr(item))
os.remove(PFILE)
def add_to_pickle(p, i):
с открытым (p, 'ab') as f:
pickle.dump(i, f, pickle.HIGHEST_PROTOCOL)
def read_from_pickle(p):
с open(p, 'rb') as f:
try:
while True:
yield pickle.load(f)
кроме EOFError:
pass if name == ' main:
main ( )

Текстовое описание автоматически генерируется

После выполнения приведенного выше кода будет сгенерирован следующий вывод:

Текстовое описание создается автоматически с низкой достоверностью

Что вы умеете распаковывать и как распаковывать файлы?

Как правило, любой объект можно замариновать, если можно замариновать все атрибуты этого объекта. Однако методы, функции и классы не могут быть замаринованы. Кроме того, невозможно выбрать открытые файловые объекты, соединения с базой данных и сетевые соединения. Первый шаг для распаковки файла — загрузить его обратно в программу на Python. Используйте команду open(), чтобы открыть файл с аргументом «rb», как указано, чтобы открыть файл в режиме «чтения». «r» означает режим чтения, а «b» — «двоичный режим».

После открытия файла назначьте его переменной, затем используйте pickle.load() с переменной и назначьте ее новой переменной. Данные файла будут храниться в переменной. Вот как вы распаковываете файлы в python. Чтобы убедиться, что файл успешно распакован, просто распечатайте данные словаря с помощью команды print(), сравните их с предыдущими данными словаря и проверьте их тип с помощью type().

Вывод:

Эта статья была посвящена чтению файлов pickle в Python. Здесь мы рассмотрели, что такое модуль pickle, процесс травления и рассоливания с помощью примеров. Потом мы объяснили, что можно мариновать, а что нельзя. Другими словами, какие модули, объекты или классы можно распарывать, а какие нельзя. Короткие и простые примеры помогут вам изучить и понять процесс чтения, записи и сохранения файла pickle. Внимательно прочитайте статью и используйте примеры в своих программах для чтения файла pickle.

В Python под сбором понимается преобразование объекта Python (списков, словарей и т. д.) в двоичный поток, а под разбором понимается преобразование двоичного потока данных в объект Python.

Преобразованный двоичный поток данных содержит всю информацию для восстановления исходного объекта. К сожалению, файлы pickle обычно считаются небезопасными.

Файлы Pickle используются для сохранения состояния программы (значения переменных, объектов и их состояний и т. д.), хранения объектов Python в базах данных в виде сериализованных двоичных строк, отправки данных по TCP или протоколу управления передачей и т. д. .

Во время обучения моделей машинного обучения файлы pickle используются для хранения весов моделей, а иногда загруженные обучающие данные или отформатированные обучающие данные сохраняются обратно на диск в виде файлов pickle.

В этой статье мы узнаем, как читать эти файлы pickle с помощью Python. Мы обсудим два таких способа.

Чтение файла Pickle с помощью модуля pickle в Python

В Python есть встроенный модуль pickle , который содержит утилиты для сериализации и десериализации данных с помощью Python. Эти данные можно хранить в файлах pickle.

Мы можем использовать модуль pickle для чтения файла pickle с помощью Python. Обратитесь к следующему коду Python для того же.

В приведенном выше коде переменная объектов будет содержать все данные файла pickle.

Код перебирает файл, чтобы прочитать его, пока не будет найдено исключение EOFError. Точно так же данные хранятся в объектах внутри файла pickle.

Функция load() из модуля pickle будет считывать только один объект. После чтения объекта указатель файла указывает на начало следующего объекта в файле рассола.

Чтобы узнать больше, обратитесь к документации, указанной здесь.

Чтение файла Pickle с помощью модуля pandas в Python

Мы можем использовать библиотеку pandas для чтения файла рассола в Python.

В модуле pandas есть метод read_pickle(), который можно использовать для чтения файла рассола.

Этот метод принимает аргумент filepath_or_buffer: путь к файлу, URL-адрес или буфер, из которого будет загружен файл pickle. Эта функция вернет незакрепленный объект файла.

Теперь давайте посмотрим, как использовать этот метод на практике. Обратитесь к следующему коду Python для того же.

Чтобы узнать больше о методе read_pickle(), обратитесь к официальной документации здесь.

Статьи DelftStack написаны такими же фанатами программного обеспечения, как и вы. Если вы также хотите внести свой вклад в DelftStack, написав платные статьи, вы можете посетить страницу «Написать для нас».

Статья по теме — файл Python

Статья по теме — файл Python Pickle

Статья по теме — чтение файла Python


сообщить об этом объявлении

В этом руководстве рассматривается модуль pickle, который является частью вашей стандартной библиотеки при установке Python.

Так что же такое травление? Пиклинг — это сериализация и десериализация объектов Python в поток байтов. Распаковка выполняется наоборот.

Возможно, вы слышали, что в других языках эта методология называется сериализацией, маршаллингом или сведением, но в Python она почти исключительно называется травлением. Так что же означает просто травление?

Pickling используется для хранения объектов Python. Это означает такие вещи, как списки, словари, объекты классов и многое другое.

Какие примеры?

Как правило, вы обнаружите, что травление наиболее полезно при анализе данных, когда вы выполняете рутинные задачи с данными, такие как предварительная обработка. Кроме того, это имеет смысл, когда вы работаете со специфическими для Python типами данных, такими как словари.

Например, мы используем травление в серии руководств NLTK, чтобы сохранить наш обученный алгоритм машинного обучения. Это сделано для того, чтобы каждый раз, когда мы хотим его использовать, нам не нужно было постоянно переучивать его, что занимает некоторое время.

Вместо этого мы просто обучаем алгоритм один раз, сохраняем его в переменной (объекте), а затем анализируем. В случае с модулем NLTK генерация классификаторов каждый раз занимала 5-15+ минут. С рассолом это занимало около 5 секунд.

Например, если у вас есть большой набор данных, и вы загружаете этот огромный набор данных в память каждый раз, когда запускаете программу, может иметь смысл просто замариновать его, а затем загрузить вместо него, потому что это будет намного быстрее, опять же в 50–100 раз, а иногда и намного больше, в зависимости от размера.

Давайте покажем простой пример:

Сначала импортируем pickle, чтобы использовать его, затем мы определяем пример словаря, который является объектом Python.
Затем мы открываем файл (обратите внимание, что мы открываем для записи байтов в Python 3+), затем мы используйте pickle.dump(), чтобы поместить dict в открытый файл, а затем закрыть.

Приведенный выше код сохранит для нас файл pickle, теперь нам нужно рассказать, как получить доступ к файлу pickle:

Это все, что нужно сделать, теперь вы можете делать такие вещи, как:

Благодаря сохранению сериализованного объекта его природа включена, поэтому нам не нужно беспокоиться о загрузке вещей в виде строк, словарей, списков и т. д.

Читайте также: