.PKL

Файл PKL

Python Pickle Serialized Object
Задать вопрос
БЫСТРЫЙ ОТВЕТ

Файл PKL - это почти всегда файл Python Pickle, представляющий собой бинарный снимок объекта Python, такого как обученная модель ML, набор данных или словарь. Открыть его можно с помощью модуля Python pickle. Никогда не открывайте файл PKL из ненадежного источника: Pickle может выполнять произвольный код при загрузке.

Разработчик: Python Software Foundation (Guido van Rossum, original pickle module) Категория: Файлы данных MIME: application/octet-stream
ОТКРЫВАЕТСЯ НА Windows macOS Linux
Связанные: .PKPASS · .DAT · .JSON · .RIS

На этой странице

Проиндексировано расширений: 19k+
Последняя проверка: Aug 2, 2026

Не знаете, что это за файл?

Перетащите любой файл в наш идентификатор - мы прочитаем первые байты, чтобы определить формат.

Идентифицировать файл

Что такое формат файла PKL?

Файл .pkl содержит объект Python, сериализованный с использованием модуля pickle из стандартной библиотеки Python. Процесс «пиклизации» (pickling) преобразует практически любую структуру данных Python - словари, списки, экземпляры классов, массивы NumPy, обученные модели машинного обучения - в поток байтов, который можно сохранить на диск и позже восстановить с помощью pickle.load().

Формат использует стековую виртуальную машину Pickle (PVM): поток однобайтовых кодов операций (опкодов), которые при выполнении воссоздают исходный объект. Версии протокола варьируются от Protocol 0 (текстовые опкоды, Python 1.2) до Protocol 5 (Python 3.8+, PEP 574, поддержка внешних буферов для больших массивов NumPy). Protocol 4 (магические байты 80 04 95) является стандартом по умолчанию в Python 3.8-3.11. Фиксированной схемы данных не существует; структура потока байтов полностью определяется сериализуемым объектом.

Основное современное применение - сохранение обученных моделей ML из scikit-learn, PyTorch (torch.save использует pickle внутри) и XGBoost, а также кэширование ресурсоемких вычислений. Библиотека joblib (которая также использует pickle) предпочтительна для больших массивов NumPy благодаря поддержке отображения памяти (memory-mapping).

Предупреждение о безопасности: загрузка файла .pkl из ненадежного источника может привести к выполнению произвольного кода Python. Более безопасные альтернативы включают .json для простых данных, HDF5 или Parquet для табличных данных, а также ONNX или safetensors для моделей ML. Расширения .pkl и .pickle полностью взаимозаменяемы.

Безопасность и защита

РИСК: HIGH

Python Pickle может выполнять произвольный код во время загрузки (через метод __reduce__ / опкод REDUCE). Вредоносный файл .pkl является вектором атаки для выполнения кода - относитесь к нему как к исполняемому файлу. Загружайте файлы .pkl только из источников, которым вы полностью доверяете. Для обмена моделями ML отдавайте предпочтение форматам safetensors (HuggingFace) или ONNX, которые не могут выполнять код при загрузке. Документация pickle прямо предупреждает: «Модуль pickle не является безопасным».

Детали формата

в двух словах
ПОЛНОЕ НАЗВАНИЕPython Pickle Serialized Objectтакже известен как Pickle file, .pkl file
РАЗРАБОТЧИКPython Software Foundation (Guido van Rossum, original pickle module)с 1995 (Python 1.2, original pickle module)
КАТЕГОРИЯФайлы данных
MIME-ТИПapplication/octet-stream
ТИПбинарный поток сериализованных объектов Python
СВЯЗАННЫЕ.pkpass.dat.json.ris
Это расширение также используется в…
  • Microsoft Exchange Migration Wizard Packing List - Устаревший инструмент миграции Microsoft Exchange использовал .pkl для списков упаковки; совершенно не связан с Python pickle.
MAGIC BYTES · СИГНАТУРА ФАЙЛА
СМЕЩЕНИЕ
000102
HEX
800495
ASCII
···
Protocol 4: 0x80 0x04 0x95 (самый частый, Python 3.4+). Protocol 3: 0x80 0x03 (Python 3.0-3.3). Protocol 2: 0x80 0x02 (Python 2.3+). Protocol 0/1: нет магического заголовка (текстовые/бинарные опкоды, '\x80' отсутствует). Protocol 5: 0x80 0x05 (Python 3.8+).

Программы, открывающие файлы PKL

Windows3 apps
Python (pickle module) Открытый код используйте import pickle; obj = pickle.load(open('file.pkl', 'rb')), затем изучите объект obj.
Visual Studio Code (with Python extension) Бесплатно Откройте блокнот Jupyter или терминал Python в VS Code; используйте pickle.load() для просмотра содержимого.
Spyder IDE Открытый код Используйте Variable Explorer в Spyder или выполните pickle.load() в консоли IPython.
macOS1 app
Python (pickle module) Открытый код используйте import pickle; obj = pickle.load(open('file.pkl', 'rb')), затем изучите объект obj.
Linux1 app
Python (pickle module) Открытый код используйте import pickle; obj = pickle.load(open('file.pkl', 'rb')), затем изучите объект obj.

Технические подробности

глубокая спецификация
КодировкаБинарный поток кодов операций для виртуальной машины Pickle (PVM)
Магические байты Protocol 480 04 95 по смещению 0 (Python 3.4+; по умолчанию в Python 3.8-3.11)
Магические байты Protocol 580 05 по смещению 0 (Python 3.8+, PEP 574, поддержка внешних буферов для NumPy)
Магические байты Protocol 280 02 по смещению 0 (Python 2.3+, поддержка классов нового стиля, PEP 307)
Диапазон протоколовОт Protocol 0 (текстовые опкоды, 1995) до Protocol 5 (Python 3.8+, 2019)
Структура данныхПлоский поток опкодов со стеком операндов и таблицей мемоизации; опкод STOP (0x2E) отмечает конец потока
СхемаНет фиксированной схемы; структура полностью определяется сериализуемым объектом Python
MIME-типapplication/octet-stream (нет зарегистрированного MIME-типа)
Типичный размер файлаОт 1 КБ до нескольких ГБ (от небольших словарей до огромных тензоров весов моделей ML)
Риск безопасностиВозможно выполнение произвольного кода Python при вызове pickle.load() из ненадежных источников
Межъязыковая переносимостьТолько для Python; другие языки не могут нативно читать или записывать этот формат
Основное современное использованиеСохранение моделей scikit-learn, весов PyTorch (torch.save), моделей XGBoost, кэширование вычислений
Взаимозаменяемое расширение.pickle идентичен по формату и полностью взаимозаменяем с .pkl
Связанная библиотекаjoblib расширяет pickle оптимизациями отображения памяти, подходящими для больших массивов NumPy
Выпущен1995 (Python 1.2, original pickle module)
Последняя версияProtocol 5 (Python 3.8+, PEP 574, 2019)
Спецификацияdocs.python.org

Вопросы и ответы сообщества

спрошено пользователями
Задать быстрый вопрос
Получите помощь от людей, работающих с файлами PKL. Будьте конкретны - укажите вашу систему и версию ПО.
Аккаунт не нужен · ответы обычно в течение дня
A
ArnoSep 2026БЕЗ ОТВЕТА
Comment créer un fichier pkl ?
Ожидание ответа

Часто задаваемые вопросы

Как открыть файл .pkl?
Используйте Python: import pickle; obj = pickle.load(open('file.pkl', 'rb')). Загружайте только те файлы pkl, которым вы доверяете - они могут выполнять код при загрузке.
Безопасно ли открывать файл .pkl?
Только если вы доверяете источнику. Pickle может выполнять произвольный код Python во время загрузки. Никогда не открывайте файлы .pkl из неизвестных источников.
Какая программа создала мой файл .pkl?
Почти наверняка это Python - либо напрямую через pickle/joblib, либо через фреймворки вроде scikit-learn (model.fit, затем joblib.dump) или PyTorch (torch.save).
Можно ли открыть файл .pkl без Python?
Практически нет. Pickle специфичен для Python. Вам понадобится Python и, в идеале, та же библиотека, которая создала файл (scikit-learn, PyTorch и т. д.).
Как конвертировать .pkl в JSON или CSV?
Сначала загрузите его с помощью Python pickle, затем сериализуйте: json.dump(obj, open('out.json','w')) для данных, поддерживающих JSON, или pd.DataFrame(obj).to_csv() для табличных данных.
В чем разница между .pkl и .pickle?
Они идентичны - оба используют формат Python pickle. Выбор расширения является вопросом соглашения; .pkl чаще встречается в контексте машинного обучения.

Ссылки

1Python Docs - pickle moduledocs.python.org
2PEP 307 - Protocol 2 (Python 2.3)peps.python.org

Узнать больше

по всей базе данных

Популярные расширения на этой неделе

1.AQQAQQ Instant Messenger File
2.CRDOWNLOADChrome Partial Download File
3.JPGJPEG Image
4.PARTPartial Download File
5.RPMSGRestricted Permission Message
6.MDMarkdown Document
7.DATProgram Data File (generic)
8.EXEWindows Executable (Portable Executable)
9.BINCD/DVD Disc Image (BIN/CUE)
10.DBSQLite Database File

Похожие расширения

.PKPASSApple Wallet Pass (formerly Passbook)
.DATProgram Data File (generic)
.JSONJavaScript Object Notation file
.RISResearch Information Systems citation file
.OFXOpen Financial Exchange
.CSVComma-Separated Values

Бесплатные инструменты для файлов

Идентификатор файлов и конвертер изображений в браузере - все работает на вашем устройстве.

Открыть инструменты

Обзор расширений файлов A-Z