.PKL

PKL-fil

Python Pickle Serialized Object
Ställ en fråga
SNABBT SVAR

En PKL-fil är nästan alltid en Python Pickle-fil - en binär ögonblicksbild av ett Python-objekt, såsom en tränad ML-modell, ett dataset eller en dictionary. Öppna den med Pythons pickle-modul. Öppna aldrig en PKL-fil från en otillförlitlig källa: Pickle kan exekvera godtycklig kod vid inläsning.

Utvecklare: Python Software Foundation (Guido van Rossum, original pickle module) Kategori: Filer med uppgifter MIME: application/octet-stream
ÖPPNAS PÅ Windows macOS Linux
Relaterat: .PKPASS · .DAT · .JSON · .RIS

På denna sida

19k+ filtillägg indexerade
Senast granskad Aug 2, 2026

Osäker på vad din fil är?

Släpp valfri fil i vår identifierare - vi läser bara de första byten för att namnge formatet.

Identifiera en fil

Vad är filformatet PKL?

En .pkl-fil innehåller ett Python-objekt serialiserat med modulen pickle från Pythons standardbibliotek. Pickling konverterar nästan vilken Python-datastruktur som helst - dictionaries, listor, klassinstanser, NumPy-arrayer, tränade maskininlärningsmodeller - till en bitström som kan sparas på disk och senare återställas med pickle.load().

Formatet använder en stackbaserad Pickle Virtual Machine (PVM): en ström av enkelbytes-opkoder som, när de exekveras, rekonstruerar det ursprungliga objektet. Protokollversioner sträcker sig från Protocol 0 (textbaserade opkoder, Python 1.2) till Protocol 5 (Python 3.8+, PEP 574, med stöd för out-of-band-buffertar för stora NumPy-arrayer). Protocol 4 (magic bytes 80 04 95) är standard i Python 3.8-3.11. Det finns inget fast schema; bitströmmens struktur bestäms helt av objektet som serialiseras.

Den dominerande moderna användningen är att spara tränade ML-modeller från scikit-learn, PyTorch (torch.save omsluter pickle internt) och XGBoost, samt att cacha resurskrävande beräkningsresultat. Biblioteket joblib (som också använder pickle) föredras för stora NumPy-arrayer på grund av stöd för minnesmappning.

Säkerhetsvarning: Att ladda en .pkl-fil från en otillförlitlig källa kan exekvera godtycklig Python-kod. Säkrare alternativ inkluderar .json för enkla data, HDF5 eller Parquet för tabelldata, samt ONNX eller safetensors för ML-modeller. Filändelserna .pkl och .pickle är helt utbytbara.

Säkerhet & trygghet

RISK: HIGH

Python Pickle kan exekvera godtycklig kod under inläsning (via __reduce__ / REDUCE-opkod). En skadlig .pkl-fil är en attackvektor för kodexekvering - hantera den som en körbar fil. Ladda endast .pkl-filer från källor du litar på fullständigt. För delning av ML-modeller, föredra safetensors (HuggingFace) eller ONNX-formatet som inte kan exekvera kod vid inläsning. Dokumentationen för pickle varnar uttryckligen: «The pickle module is not secure.»

Formatdetaljer

i ett nötskal
FULLSTÄNDIGT NAMNPython Pickle Serialized Objectäven känd som Pickle file, .pkl file
UTVECKLAREPython Software Foundation (Guido van Rossum, original pickle module)sedan 1995 (Python 1.2, original pickle module)
MIME-TYPapplication/octet-stream
TYPbinär serialiserad Python-objektström
Detta filtillägg används också av…
  • Microsoft Exchange Migration Wizard Packing List - Äldre migreringsverktyg för Microsoft Exchange använde .pkl för packlistor; helt orelaterat till Python pickle.
MAGIC BYTES · FILSIGNATUR
OFFSET
000102
HEX
800495
ASCII
···
Protocol 4: 0x80 0x04 0x95 (vanligast, Python 3.4+). Protocol 3: 0x80 0x03 (Python 3.0-3.3). Protocol 2: 0x80 0x02 (Python 2.3+). Protocol 0/1: inget magiskt huvud (text/binära opkoder, '\x80' saknas). Protocol 5: 0x80 0x05 (Python 3.8+).

Program som öppnar PKL-filer

Windows3 apps
Python (pickle module) Öppen källkod import pickle; obj = pickle.load(open('file.pkl', 'rb')) - inspektera sedan obj.
Visual Studio Code (with Python extension) Gratis Öppna en Jupyter-notebook eller Python-terminal i VS Code; använd pickle.load() för att inspektera innehållet.
Spyder IDE Öppen källkod Använd Variable Explorer i Spyder eller kör pickle.load() i IPython-konsolen.
macOS1 app
Python (pickle module) Öppen källkod import pickle; obj = pickle.load(open('file.pkl', 'rb')) - inspektera sedan obj.
Linux1 app
Python (pickle module) Öppen källkod import pickle; obj = pickle.load(open('file.pkl', 'rb')) - inspektera sedan obj.

Tekniska detaljer

djup specifikation
KodningBinär opkod-ström för Pickle Virtual Machine (PVM)
Protocol 4 magic bytes80 04 95 vid offset 0 (Python 3.4+; standard i Python 3.8-3.11)
Protocol 5 magic bytes80 05 vid offset 0 (Python 3.8+, PEP 574, stöd för out-of-band-buffert för NumPy)
Protocol 2 magic bytes80 02 vid offset 0 (Python 2.3+, stöd för new-style classes, PEP 307)
ProtokollomfångProtocol 0 (text-opkoder, 1995) till Protocol 5 (Python 3.8+, 2019)
DatastrukturPlatt opkod-ström med operand-stack och memo-tabell; STOP-opkod (0x2E) markerar slutet på strömmen
SchemaInget fast schema; strukturen bestäms helt av det Python-objekt som serialiseras
MIME-typapplication/octet-stream (ingen registrerad MIME-typ)
Typisk filstorlek1 KB - flera GB (från små dicts till stora ML-modellens vikttensorer)
SäkerhetsriskExekvering av godtycklig Python-kod är möjlig vid pickle.load() från otillförlitliga källor
Portabilitet mellan språkEndast Python; inget annat språk kan läsa eller skriva detta format nativt
Primär modern användningSpara scikit-learn-modeller, PyTorch-vikter (torch.save), XGBoost-modeller, cachade beräkningar
Utbytbar filändelse.pickle är identisk i formatet och helt utbytbar med .pkl
Relaterat bibliotekjoblib omsluter pickle med minnesmappnings-optimeringar lämpade för stora NumPy-arrayer
Släppt1995 (Python 1.2, original pickle module)
Senaste versionProtocol 5 (Python 3.8+, PEP 574, 2019)
Specifikationdocs.python.org

Frågor & svar

frågat av användare
Ställ en snabb fråga
Få hjälp från personer som arbetar med PKL-filer. Var specifik - inkludera ditt system och programversion.
Inget konto behövs · svar vanligtvis inom en dag
A
ArnoSep 2026OBESVARAD
Comment créer un fichier pkl ?
Väntar på svar

Vanliga frågor

Hur öppnar jag en .pkl-fil?
Använd Python: import pickle; obj = pickle.load(open('file.pkl', 'rb')). Ladda endast pkl-filer som du litar på - de kan exekvera kod vid inläsning.
Är en .pkl-fil säker att öppna?
Endast om du litar på källan. Pickle kan exekvera godtycklig Python-kod under inläsning. Öppna aldrig .pkl-filer från okända källor.
Vilket program skapade min .pkl-fil?
Troligtvis Python - antingen direkt via pickle/joblib, eller ett ramverk som scikit-learn (model.fit följt av joblib.dump) eller PyTorch (torch.save).
Kan jag öppna en .pkl-fil utan Python?
Inte på ett meningsfullt sätt. Pickle är specifikt för Python. Du behöver Python och helst samma bibliotek som skapade filen (scikit-learn, PyTorch, etc.).
Hur konverterar jag .pkl till JSON eller CSV?
Ladda först med Pythons pickle, serialisera sedan: json.dump(obj, open('out.json','w')) för JSON-kompatibla data, eller pd.DataFrame(obj).to_csv() för tabelldata.
Vad är skillnaden mellan .pkl och .pickle?
De är identiska - båda använder Pythons pickle-format. Valet av filändelse är en konvention; .pkl är vanligare inom ML-sammanhang.

Referenser

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

Fortsätt utforska

genom databasen

Populära filtillägg denna vecka

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

Relaterade filtillägg

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

Gratis filverktyg

En filidentifierare och bildkonverterare direkt i webbläsaren - allt körs på din enhet.

Öppna verktygslådan

Bläddra bland filtillägg A-Ö