.PKL

Plik PKL

Python Pickle Serialized Object
Zadaj pytanie
SZYBKA ODPOWIEDŹ

Plik PKL to prawie zawsze plik Python Pickle - binarna migawka obiektu Python, takiego jak wytrenowany model ML, zestaw danych lub słownik. Otwiera się go za pomocą modułu pickle języka Python. Nigdy nie otwieraj pliku PKL z niezaufanego źródła: Pickle może wykonać dowolny kod podczas ładowania.

Deweloper: Python Software Foundation (Guido van Rossum, original pickle module) Kategoria: Pliki danych MIME: application/octet-stream
OTWIERA SIĘ NA Windows macOS Linux
Powiązane: .PKPASS · .DAT · .JSON · .RIS

Na tej stronie

Zindeksowano 19k+ rozszerzeń
Ostatnia weryfikacja Aug 2, 2026

Nie wiesz, co to za plik?

Przeciągnij dowolny plik do naszego identyfikatora - odczytujemy tylko pierwsze bajty, aby nazwać format.

Zidentyfikuj plik

Co to jest format pliku PKL?

Plik .pkl zawiera obiekt Python zserializowany przy użyciu modułu pickle z biblioteki standardowej Python. Proces „pickling” konwertuje niemal każdą strukturę danych Python - słowniki, listy, instancje klas, tablice NumPy, wytrenowane modele uczenia maszynowego - w strumień bajtów, który można zapisać na dysku i później przywrócić za pomocą pickle.load().

Format ten wykorzystuje opartą na stosie maszynę wirtualną Pickle Virtual Machine (PVM): strumień jednobajtowych kodów operacji (opcodes), które po wykonaniu rekonstruują oryginalny obiekt. Wersje protokołów sięgają od Protokołu 0 (opartych na tekście kodów operacji, Python 1.2) do Protokołu 5 (Python 3.8+, PEP 574, obsługujący bufory out-of-band dla dużych tablic NumPy). Protokół 4 (magiczne bajty 80 04 95) jest domyślny w Python 3.8-3.11. Nie istnieje stały schemat; struktura strumienia bajtów jest w całości określona przez serializowany obiekt.

Dominującym współczesnym zastosowaniem jest zapisywanie wytrenowanych modeli ML z bibliotek scikit-learn, PyTorch (torch.save wewnętrznie opakowuje pickle) oraz XGBoost, a także buforowanie kosztownych wyników obliczeń. Biblioteka joblib (która również używa pickle) jest preferowana dla dużych tablic NumPy ze względu na obsługę mapowania pamięci.

Ostrzeżenie dotyczące bezpieczeństwa: ładowanie pliku .pkl z niezaufanego źródła może spowodować wykonanie dowolnego kodu Python. Bezpieczniejsze alternatywy to .json dla prostych danych, HDF5 lub Parquet dla danych tabelarycznych oraz ONNX lub safetensors dla modeli ML. Rozszerzenia .pkl i .pickle są w pełni zamienne.

Bezpieczeństwo

RYZYKO: HIGH

Python Pickle może wykonywać dowolny kod podczas ładowania (poprzez kod operacji __reduce__ / REDUCE). Złośliwy plik .pkl jest wektorem ataku typu „code execution” - należy go traktować jak plik wykonywalny. Ładuj pliki .pkl wyłącznie ze źródeł, którym całkowicie ufasz. Do udostępniania modeli ML preferuj formaty safetensors (HuggingFace) lub ONNX, które nie mogą wykonywać kodu przy ładowaniu. Dokumentacja pickle wyraźnie ostrzega: „Moduł pickle nie jest bezpieczny”.

Szczegóły formatu

w pigułce
PEŁNA NAZWAPython Pickle Serialized Objectznany również jako Pickle file, .pkl file
DEWELOPERPython Software Foundation (Guido van Rossum, original pickle module)od 1995 (Python 1.2, original pickle module)
KATEGORIAPliki danych
TYP MIMEapplication/octet-stream
TYPbinarny strumień zserializowanych obiektów Python
To rozszerzenie jest również używane przez…
  • Microsoft Exchange Migration Wizard Packing List - Starsze narzędzie do migracji Microsoft Exchange używało rozszerzenia .pkl dla list pakowania; całkowicie niezwiązane z Python pickle.
MAGICZNE BAJTY · SYGNATURA PLIKU
OFFSET
000102
HEX
800495
ASCII
···
Protokół 4: 0x80 0x04 0x95 (najczęstszy, Python 3.4+). Protokół 3: 0x80 0x03 (Python 3.0-3.3). Protokół 2: 0x80 0x02 (Python 2.3+). Protokół 0/1: brak nagłówka magicznego (tekstowe/binarne kody operacji, brak '\x80'). Protokół 5: 0x80 0x05 (Python 3.8+).

Programy otwierające pliki PKL

Windows3 apps
Python (pickle module) Open-source import pickle; obj = pickle.load(open('file.pkl', 'rb')) - następnie sprawdź zawartość obj.
Visual Studio Code (with Python extension) Darmowy Otwórz notatnik Jupyter lub terminal Python w VS Code; użyj pickle.load(), aby sprawdzić zawartość.
Spyder IDE Open-source Użyj Variable Explorer w Spyder lub uruchom pickle.load() w konsoli IPython.
macOS1 app
Python (pickle module) Open-source import pickle; obj = pickle.load(open('file.pkl', 'rb')) - następnie sprawdź zawartość obj.
Linux1 app
Python (pickle module) Open-source import pickle; obj = pickle.load(open('file.pkl', 'rb')) - następnie sprawdź zawartość obj.

Szczegóły techniczne

specyfikacja
KodowanieBinarny strumień kodów operacji dla maszyny wirtualnej Pickle Virtual Machine (PVM)
Magiczne bajty Protokołu 480 04 95 pod offsetem 0 (Python 3.4+; domyślny w Python 3.8-3.11)
Magiczne bajty Protokołu 580 05 pod offsetem 0 (Python 3.8+, PEP 574, obsługa buforów out-of-band dla NumPy)
Magiczne bajty Protokołu 280 02 pod offsetem 0 (Python 2.3+, obsługa klas nowego typu, PEP 307)
Zakres protokołówProtokół 0 (tekstowe kody operacji, 1995) do Protokołu 5 (Python 3.8+, 2019)
Struktura danychPłaski strumień kodów operacji ze stosem operandów i tablicą memo; kod operacji STOP (0x2E) oznacza koniec strumienia
SchematBrak stałego schematu; struktura jest określona całkowicie przez serializowany obiekt Python
Typ MIMEapplication/octet-stream (brak zarejestrowanego typu MIME)
Typowy rozmiar pliku1 KB - kilka GB (od małych słowników po duże tensory wag modeli ML)
Ryzyko bezpieczeństwaMożliwość wykonania dowolnego kodu Python przy pickle.load() z niezaufanych źródeł
Przenośność międzyjęzykowaTylko Python; żaden inny język nie potrafi natywnie odczytać ani zapisać tego formatu
Główne współczesne zastosowanieZapisywanie modeli scikit-learn, wag PyTorch (torch.save), modeli XGBoost, buforowanie obliczeń
Zamienne rozszerzenie.pickle jest identyczny pod względem formatu i w pełni zamienny z .pkl
Powiązana bibliotekajoblib opakowuje pickle z optymalizacjami mapowania pamięci dostosowanymi do dużych tablic NumPy
Wydano1995 (Python 1.2, original pickle module)
Najnowsza wersjaProtocol 5 (Python 3.8+, PEP 574, 2019)
Specyfikacjadocs.python.org

Pytania i odpowiedzi społeczności

pytania użytkowników
Zadaj szybkie pytanie
Uzyskaj pomoc od osób pracujących z plikami PKL. Bądź precyzyjny - podaj system i wersję oprogramowania.
Konto nie jest wymagane · odpowiedzi zazwyczaj w ciągu doby
A
ArnoSep 2026BEZ ODPOWIEDZI
Comment créer un fichier pkl ?
Oczekiwanie na odpowiedź

Najczęściej zadawane pytania

Jak otworzyć plik .pkl?
Użyj Python: import pickle; obj = pickle.load(open('file.pkl', 'rb')). Ładuj tylko te pliki pkl, którym ufasz - mogą one wykonywać kod podczas ładowania.
Czy plik .pkl jest bezpieczny do otwarcia?
Tylko jeśli ufasz źródłu. Pickle może wykonywać dowolny kod Python podczas ładowania. Nigdy nie otwieraj plików .pkl z nieznanych źródeł.
Jaki program utworzył mój plik .pkl?
Prawie na pewno Python - bezpośrednio przez pickle/joblib lub framework taki jak scikit-learn (model.fit, a następnie joblib.dump) lub PyTorch (torch.save).
Czy mogę otworzyć plik .pkl bez Python?
Nie w sposób sensowny. Pickle jest specyficzny dla języka Python. Potrzebujesz Python i najlepiej tej samej biblioteki, która utworzyła plik (scikit-learn, PyTorch itp.).
Jak przekonwertować .pkl na JSON lub CSV?
Najpierw załaduj go za pomocą Python pickle, a następnie zserializuj: json.dump(obj, open('out.json','w')) dla danych serializowalnych do JSON lub pd.DataFrame(obj).to_csv() dla danych tabelarycznych.
Jaka jest różnica między .pkl a .pickle?
Są identyczne - oba używają formatu pickle języka Python. Wybór rozszerzenia to kwestia konwencji; .pkl jest częściej spotykany w kontekstach ML.

Źródła

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

Odkrywaj dalej

w całej bazie danych

Najpopularniejsze rozszerzenia w tym tygodniu

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

Powiązane rozszerzenia

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

Darmowe narzędzia do plików

Identyfikator plików i konwerter obrazów w przeglądarce - wszystko działa na Twoim urządzeniu.

Otwórz przybornik

Przeglądaj rozszerzenia plików A-Z