.PICKLE

PICKLE-fil

Python Pickle Serialization File
Ställ en fråga
SNABBT SVAR

En PICKLE-fil lagrar ett serialiserat Python-objekt - en tränad ML-modell, dataset eller datastruktur - skapad av Pythons inbyggda pickle-modul. Öppna den med Python: import pickle; data = pickle.load(open('file.pickle', 'rb')). Ladda aldrig en pickle-fil från en okänd källa; den kan köra godtycklig kod på din maskin.

Utvecklare: Python Software Foundation Kategori: Utvecklarfiler Öppen standard MIME: application/octet-stream
ÖPPNAS PÅ Windows macOS Linux
Relaterat: .DO · .MD · .HEX · .XSD

På denna sida

19k+ filtillägg indexerade
Senast granskad Jul 14, 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 PICKLE?

Filer med filändelsen .pickle lagrar Python-objekt serialiserade med modulen pickle, Pythons inbyggda bibliotek för objektserialisering. Både .pickle och .pkl är utbytbara filändelser för samma format; .pickle är den längre explicita formen medan .pkl är den kompakta treteckensvarianten som använts sedan Python 1.x.

Innehåll i Python Pickle-filer

Serialiserade objekt i .pickle-filer kan vara av vilken Python-typ som helst. .pickle-filer används för att serialisera databasobjekt, cacha vikter för maskininlärningsmodeller eller lagra programtillstånd mellan körningar. Endast .pickle-filer från betrodda källor bör användas, eftersom sådana filer kan innehålla skadlig programvara - deserialisering av en obetrodd pickle kan köra godtycklig Python-kod. Pickle-objekt kan komprimeras externt med gzip, bz2 eller lzma.

Hur skapas Python PICKLE-filer?

Serialiseringsprocessen kallas «pickling» och görs med metoderna dump() och dumps(). Metoden dump() används för att serialisera ett objekt till en fil, medan dumps() sparar objektet som ett bytes-objekt. Deserialisering - att konvertera byteströmmen tillbaka till originalobjektet - görs med load() och loads(); denna process kallas «unpickling».

Pickle-protokollversionen styr det binära formatet. Protokoll 0 är läsbar ASCII; protokoll 1-5 är progressivt binära, där protokoll 5 (Python 3.8+) lägger till out-of-band-buffertar för effektiv hantering av stora .NPY-arrayer. Inom arbetsflöden för maskininlärning används .pickle i stor utsträckning för att spara scikit-learn-modeller och PyTorch-kontrollpunkter, även om SafeTensors vinner mark som ett säkrare alternativ för just modellvikter.

Säkerhet & trygghet

RISK: HIGH

KRITISK VARNING: Pickle-filer kan köra godtycklig Python-kod när de laddas. En skadlig .pickle-fil kan radera filer, ladda ner skadlig kod eller ta över ett system. Ladda aldrig en pickle-fil från en okänd källa. I ML/AI-arbetsflöden är skadliga pickles i modellarkiv (Hugging Face Hub, GitHub) en aktiv hotvektor. Använd picklescan för att skanna filer innan de laddas, eller byt till SafeTensors-formatet för modellvikter. CVE-2025-1889: picklescan < 0.0.22 kunde kringgås genom att använda icke-standardiserade filändelser inuti arkivbaserade modellpaket.

Formatdetaljer

i ett nötskal
FULLSTÄNDIGT NAMNPython Pickle Serialization Fileäven känd som Python Pickle file, pickled object file
UTVECKLAREPython Software Foundationsedan 1994 (Python 1.1; pickle module first released)
MIME-TYPapplication/octet-stream
TYPbinärt serialiseringsformat
STANDARDÖppen · royaltyfri
MAGIC BYTES · FILSIGNATUR
OFFSET
0001
HEX
8005
ASCII
··
Magic byte varierar beroende på protokoll: \x80\x00 (proto 0, läsbar), \x80\x02 (proto 2, Python 2.3+), \x80\x03 (proto 3, Python 3.0+), \x80\x04 (proto 4, Python 3.4+), \x80\x05 (proto 5, Python 3.8+). Protokoll 0 har ingen binär magic - det består av läsbara ASCII-opkoder. Alla binära protokoll börjar med opkod 0x80 följt av protokollversionens byte.

Program som öppnar PICKLE-filer

Windows3 apps
Python Öppen källkod python -c "import pickle; import pprint; pprint.pprint(pickle.load(open('file.pickle','rb')))" - skriver ut det deserialiserade objektet. Använd endast med betrodda filer.
VS Code (with Python extension) Gratis Öppna en Python-terminal, importera pickle och ladda filen interaktivt i en Jupyter-anteckningsbok eller Python REPL.
Jupyter Notebook / JupyterLab Öppen källkod I en anteckningsbokscell: import pickle; data = pickle.load(open('file.pickle','rb')); print(data)
macOS1 app
Python Öppen källkod python -c "import pickle; import pprint; pprint.pprint(pickle.load(open('file.pickle','rb')))" - skriver ut det deserialiserade objektet. Använd endast med betrodda filer.
Linux1 app
Python Öppen källkod python -c "import pickle; import pprint; pprint.pprint(pickle.load(open('file.pickle','rb')))" - skriver ut det deserialiserade objektet. Använd endast med betrodda filer.

Tekniska detaljer

djup specifikation
FilkodningBinär (protokoll 1-5); läsbara ASCII-opkoder (protokoll 0)
Magic bytes0x80 följt av protokollversionens byte; t.ex. 0x80 0x05 för protokoll 5 (Python 3.8+); protokoll 0 har ingen binär magic
Pickle-protokoll0 (ASCII, Python 1.x); 1 (binär, Python 1.x); 2 (new-style classes, Python 2.3+); 3 (bytes, Python 3.0+); 4 (objekt >4 GB, Python 3.4+); 5 (out-of-band-buffertar, Python 3.8+)
StandardprotokollProtokoll 5 är standard i Python 3.8 och senare
KomprimeringIngen inbyggd; paketeras vanligtvis externt i gzip, bz2 eller lzma; joblib lägger till ett eget komprimeringslager
KrypteringIngen - ingen inbyggd kryptering; kryptera på filsystemsnivå eller via ett omslag vid behov
Typisk filstorlekUnder 1 MB för modellkonfigurationer; 1 MB - flera GB för ML-modellvikter och stora dataset
SäkerhetsriskDeserialisering av obetrodd pickle-data kan köra godtycklig Python-kod via __reduce__-hooks - unpickla aldrig filer från okända källor
Intern strukturStröm av pickle-opkoder som kodar Python-objekt rekursivt; protokoll 4+ använder ramar för segmenterad strömning; protokoll 5 lägger till out-of-band-buffertar för zero-copy av stora arrayer
MIME-typapplication/octet-stream (formellt); application/x-pickle (informellt)
PlattformsoberoendePlattformsoberoende; körs på alla operativsystem som stöds av Python (Windows, Linux, macOS)
Serialiserings-APIdump() och dumps() för pickling; load() och loads() för unpickling
ML/AI-användningPrimärt serialiseringsformat för scikit-learn-modeller och PyTorch-kontrollpunkter; SafeTensors vinner mark som ett säkrare alternativ för modellvikter
Släppt1994 (Python 1.1; pickle module first released)
Senaste versionProtocol 5 (Python 3.8, 2019); default protocol 5 from Python 3.14
Öppen standardJa · royaltyfri
Specifikationdocs.python.org

PICKLE-konverteringar

Frågor & svar

frågat av användare
Ställ en snabb fråga
Få hjälp från personer som arbetar med PICKLE-filer. Var specifik - inkludera ditt system och programversion.
Inget konto behövs · svar vanligtvis inom en dag

Inga frågor än - bli den första att fråga om PICKLE-filer.

Vanliga frågor

Hur öppnar jag en .pickle-fil?
Använd Python: import pickle; data = pickle.load(open('file.pickle', 'rb')). Ladda endast filer från betrodda källor - pickle kan köra godtycklig kod.
Vad är skillnaden mellan .pickle och .pkl?
De är samma format med olika filändelser. .pkl är vanligare i praktiken; .pickle är det fullständiga ordet. Pythons pickle-modul accepterar båda.
Är pickle-filer säkra att öppna?
Endast om du litar på källan. Pickle är i grunden osäkert med obetrodd data - att ladda en skadlig pickle-fil kan köra godtycklig kod på din maskin. För ML-modeller från okända källor, skanna med picklescan först.
Kan jag konvertera en pickle-fil till JSON?
Endast om det picklade objektet innehåller JSON-kompatibla typer. Använd Python: json.dump(pickle.load(open('file.pickle','rb')), open('out.json','w')). Komplexa objekt (NumPy-arrayer, klassinstanser) kräver anpassade serialiserare.
Vilket Python-protokoll ska jag använda när jag sparar en pickle?
Använd protocol=5 (Python 3.8+) för bästa prestanda med stora data, särskilt NumPy-arrayer. Använd protocol=2 om du behöver kompatibilitet med Python 2. Ange med pickle.dump(obj, f, protocol=5).
Varför är min pickle-fil så stor?
Pickle lagrar hela objektgrafen inklusive klassmetadata. För NumPy-arrayer eller ML-modellvikter, använd komprimerade format: pickle.dump(obj, gzip.open('file.pkl.gz','wb')) eller byt till SafeTensors/HDF5.
Kan jag öppna en pickle-fil i Excel eller ett kalkylprogram?
Inte direkt. Om picklen innehåller en pandas DataFrame, exportera den till CSV först med Python: df.to_csv('out.csv').

Referenser

1Python docs - pickle moduledocs.python.org
2PEP 3154 - Pickle Protocol 4peps.python.org

Fortsätt utforska

genom databasen

Populära filtillägg denna vecka

1.AQQAQQ Instant Messenger File
2.CRDOWNLOADChrome Partial Download File
3.BINCD/DVD Disc Image (BIN/CUE)
4.DATProgram Data File (generic)
5.PARTPartial Download File
6.EXEWindows Executable (Portable Executable)
7.NOMEDIAAndroid No-Media Marker File
8.RPMSGRestricted Permission Message
9.TXTPlain Text File
10.MDMarkdown Document

Relaterade filtillägg

.DOStata Do-File
.MDMarkdown Document
.HEXIntel HEX File
.XSDXML Schema Definition
.MAPSource Map (JavaScript / CSS)
.CONFIGConfiguration File

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-Ö