.PKL

PKL-fil

Python Pickle Serialized Object
Stil et spørgsmål
HURTIGT SVAR

En PKL-fil er næsten altid en Python Pickle-fil - et binært øjebliksbillede af et Python-objekt, såsom en trænet ML-model, et datasæt eller en dictionary. Åbn den med Pythons pickle-modul. Åbn aldrig en PKL-fil fra en upålidelig kilde: Pickle kan eksekvere vilkårlig kode ved indlæsning.

Udvikler: Python Software Foundation (Guido van Rossum, original pickle module) Kategori: Datafiler MIME: application/octet-stream
ÅBNER PÅ Windows macOS Linux
Relateret: .PKPASS · .DAT · .JSON · .RIS

På denne side

19k+ filtyper indekseret
Sidst gennemset Aug 2, 2026

Er du ikke sikker på, hvad din fil er?

Træk en fil over i vores identifikator - vi læser kun de første bytes for at navngive formatet.

Identificer en fil

Hvad er PKL-filformatet?

En .pkl-fil indeholder et Python-objekt serialiseret ved hjælp af pickle-modulet fra Pythons standardbibliotek. Pickling konverterer næsten enhver Python-datastruktur - dictionaries, lister, klasse-instanser, NumPy-arrays, trænede machine learning-modeller - til en bytestrøm, der kan gemmes på disken og senere gendannes med pickle.load().

Formatet bruger en stakbaseret Pickle Virtual Machine (PVM): en strøm af enkelt-byte opkoder, der, når de eksekveres, rekonstruerer det oprindelige objekt. Protokolversioner spænder fra Protokol 0 (tekstbaserede opkoder, Python 1.2) til Protokol 5 (Python 3.8+, PEP 574, der understøtter out-of-band buffere til store NumPy-arrays). Protokol 4 (magic bytes 80 04 95) er standarden i Python 3.8-3.11. Der er intet fast skema; bytestrømmens struktur bestemmes udelukkende af det objekt, der serialiseres.

Den dominerende moderne brug er lagring af trænede ML-modeller fra scikit-learn, PyTorch (torch.save pakker pickle ind internt) og XGBoost, samt caching af tunge beregningsresultater. joblib-biblioteket (som også bruger pickle) foretrækkes til store NumPy-arrays på grund af understøttelse af memory-mapping.

Sikkerhedsadvarsel: Indlæsning af en .pkl-fil fra en upålidelig kilde kan eksekvere vilkårlig Python-kode. Sikrere alternativer inkluderer .json til simple data, HDF5 eller Parquet til tabulære data, og ONNX eller safetensors til ML-modeller. Filendelserne .pkl og .pickle er fuldt ud udskiftelige.

Sikkerhed og tryghed

RISIKO: HIGH

Python Pickle kan eksekvere vilkårlig kode under indlæsning (via __reduce__ / REDUCE-opkode). En ondsindet .pkl-fil er en angrebsvektor for kodeeksekvering - behandl den som en eksekverbar fil. Indlæs kun .pkl-filer fra kilder, du stoler fuldstændigt på. Til deling af ML-modeller bør man foretrække safetensors (HuggingFace) eller ONNX-formatet, som ikke kan eksekvere kode ved indlæsning. Pickle-dokumentationen advarer eksplicit: «The pickle module is not secure.»

Formatdetaljer

kort fortalt
FULDSTÆNDIGT NAVNPython Pickle Serialized Objectogså kendt som Pickle file, .pkl file
UDVIKLERPython Software Foundation (Guido van Rossum, original pickle module)siden 1995 (Python 1.2, original pickle module)
KATEGORIDatafiler
MIME-TYPEapplication/octet-stream
TYPEbinær serialiseret Python-objektstrøm
Dette filtypenavn bruges også af…
  • Microsoft Exchange Migration Wizard Packing List - Ældre Microsoft Exchange-migreringsværktøj brugte .pkl til pakkelister; fuldstændig urelateret til Python pickle.
MAGIC BYTES · FILSIGNATUR
OFFSET
000102
HEX
800495
ASCII
···
Protokol 4: 0x80 0x04 0x95 (mest almindelig, Python 3.4+). Protokol 3: 0x80 0x03 (Python 3.0-3.3). Protokol 2: 0x80 0x02 (Python 2.3+). Protokol 0/1: ingen magic header (tekst/binære opkoder, '\x80' mangler). Protokol 5: 0x80 0x05 (Python 3.8+).

Programmer der åbner PKL-filer

Windows3 apps
Python (pickle module) Open-source import pickle; obj = pickle.load(open('file.pkl', 'rb')) - inspicér derefter obj.
Visual Studio Code (with Python extension) Gratis Åbn en Jupyter notebook eller Python-terminal i VS Code; brug pickle.load() til at inspicere indholdet.
Spyder IDE Open-source Brug Variable Explorer i Spyder eller kør pickle.load() i IPython-konsollen.
macOS1 app
Python (pickle module) Open-source import pickle; obj = pickle.load(open('file.pkl', 'rb')) - inspicér derefter obj.
Linux1 app
Python (pickle module) Open-source import pickle; obj = pickle.load(open('file.pkl', 'rb')) - inspicér derefter obj.

Tekniske detaljer

dyb specifikation
KodningBinær opkode-strøm til Pickle Virtual Machine (PVM)
Protokol 4 magic bytes80 04 95 ved offset 0 (Python 3.4+; standard i Python 3.8-3.11)
Protokol 5 magic bytes80 05 ved offset 0 (Python 3.8+, PEP 574, understøttelse af out-of-band buffere til NumPy)
Protokol 2 magic bytes80 02 ved offset 0 (Python 2.3+, understøttelse af new-style klasser, PEP 307)
Protokol-rækkeviddeProtokol 0 (tekst-opkoder, 1995) til Protokol 5 (Python 3.8+, 2019)
DatastrukturFlad opkode-strøm med operand-stak og memo-tabel; STOP-opkode (0x2E) markerer slutningen af strømmen
SkemaIntet fast skema; strukturen bestemmes udelukkende af det Python-objekt, der serialiseres
MIME-typeapplication/octet-stream (ingen registreret MIME-type)
Typisk filstørrelse1 KB - adskillige GB (fra små dicts til store ML-modelvægt-tensorer)
SikkerhedsrisikoEksekvering af vilkårlig Python-kode er mulig ved pickle.load() fra upålidelige kilder
Portabilitet på tværs af sprogKun Python; intet andet sprog kan læse eller skrive dette format indfødt
Primær moderne brugGemme scikit-learn-modeller, PyTorch-vægte (torch.save), XGBoost-modeller, cachede beregninger
Udskiftelig filendelse.pickle er identisk i format og fuldt ud udskiftelig med .pkl
Relateret bibliotekjoblib pakker pickle ind med memory-mapping-optimeringer egnet til store NumPy-arrays
Udgivet1995 (Python 1.2, original pickle module)
Seneste versionProtocol 5 (Python 3.8+, PEP 574, 2019)
Specifikationdocs.python.org

Fællesskabets Q&A

spurgt af brugere
Stil et hurtigt spørgsmål
Få hjælp fra folk, der arbejder med PKL-filer. Vær specifik - medtag dit system og din softwareversion.
Ingen konto nødvendig · svar normalt inden for en dag
A
ArnoSep 2026UBESVARET
Comment créer un fichier pkl ?
Venter på svar

Ofte stillede spørgsmål

Hvordan åbner jeg en .pkl-fil?
Brug Python: import pickle; obj = pickle.load(open('file.pkl', 'rb')). Indlæs kun pkl-filer, du har tillid til - de kan eksekvere kode ved indlæsning.
Er en .pkl-fil sikker at åbne?
Kun hvis du stoler på kilden. Pickle kan eksekvere vilkårlig Python-kode under indlæsning. Åbn aldrig .pkl-filer fra ukendte kilder.
Hvilket program har oprettet min .pkl-fil?
Næsten med sikkerhed Python - enten direkte via pickle/joblib, eller et framework som scikit-learn (model.fit efterfulgt af joblib.dump) eller PyTorch (torch.save).
Kan jeg åbne en .pkl-fil uden Python?
Ikke på en meningsfuld måde. Pickle er Python-specifik. Du skal bruge Python og ideelt set det samme bibliotek, som oprettede filen (scikit-learn, PyTorch, osv.).
Hvordan konverterer jeg .pkl til JSON eller CSV?
Indlæs først med Python pickle, og serialiser derefter: json.dump(obj, open('out.json','w')) for JSON-serialiserbare data, eller pd.DataFrame(obj).to_csv() for tabulære data.
Hvad er forskellen på .pkl og .pickle?
De er identiske - begge bruger Pythons pickle-format. Valget af filendelse er en konvention; .pkl er mere almindelig i ML-sammenhænge.

Referencer

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

Udforsk mere

på tværs af databasen

Populære filtyper i denne uge

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

Relaterede filtyper

.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 filværktøjer

En fil-identifikator og billedkonverter direkte i browseren - alt kører på din enhed.

Åbn værktøjskassen

Gennemse filtyper A-Å