.PKL

File PKL

Python Pickle Serialized Object
Fai una domanda
RISPOSTA RAPIDA

Un file PKL è quasi sempre un file Python Pickle - uno snapshot binario di un oggetto Python come un modello ML addestrato, un dataset o un dizionario. Apritelo con il modulo pickle di Python. Non aprite mai un file PKL da una fonte non attendibile: Pickle può eseguire codice arbitrario al caricamento.

Sviluppatore: Python Software Foundation (Guido van Rossum, original pickle module) Categoria: File di dati MIME: application/octet-stream
SI APRE SU Windows macOS Linux
Correlati: .PKPASS · .DAT · .JSON · .RIS

In questa pagina

19k+ estensioni indicizzate
Ultima revisione Aug 2, 2026

Non sei sicuro di cosa sia il tuo file?

Trascina qualsiasi file nel nostro identificatore - leggiamo solo i primi byte per dare un nome al formato.

Identifica un file

Che cos'è il formato di file PKL?

Un file .pkl contiene un oggetto Python serializzato utilizzando il modulo pickle della libreria standard di Python. La serializzazione («pickling») converte quasi ogni struttura dati Python - dizionari, liste, istanze di classi, array NumPy, modelli di machine learning addestrati - in un flusso di byte che può essere salvato su disco e successivamente ripristinato con pickle.load().

Il formato utilizza una Pickle Virtual Machine (PVM) basata su stack: un flusso di opcode a singolo byte che, quando eseguiti, ricostruiscono l'oggetto originale. Le versioni del protocollo vanno dal Protocollo 0 (opcode basati su testo, Python 1.2) al Protocollo 5 (Python 3.8+, PEP 574, che supporta buffer fuori banda per grandi array NumPy). Il Protocollo 4 (magic bytes 80 04 95) è l'impostazione predefinita in Python 3.8-3.11. Non esiste uno schema fisso; la struttura del flusso di byte è interamente determinata dall'oggetto serializzato.

L'uso moderno dominante è il salvataggio di modelli ML addestrati da scikit-learn, PyTorch (torch.save incapsula pickle internamente) e XGBoost, oltre alla memorizzazione nella cache di risultati computazionali onerosi. La libreria joblib (che utilizza anch'essa pickle) è preferita per i grandi array NumPy grazie al supporto per la mappatura della memoria.

Avviso di sicurezza: il caricamento di un file .pkl da una fonte non attendibile può eseguire codice Python arbitrario. Alternative più sicure includono .json per dati semplici, HDF5 o Parquet per dati tabulari, e ONNX o safetensors per i modelli ML. Le estensioni .pkl e .pickle sono completamente intercambiabili.

Sicurezza e incolumità

RISCHIO: HIGH

Python Pickle può eseguire codice arbitrario durante il caricamento (tramite l'opcode __reduce__ / REDUCE). Un file .pkl malevolo è un vettore di attacco per l'esecuzione di codice - trattalo come un eseguibile. Carica solo file .pkl da fonti di cui ti fidi completamente. Per la condivisione di modelli ML, preferisci i formati safetensors (HuggingFace) o ONNX che non possono eseguire codice al caricamento. La documentazione di pickle avverte esplicitamente: «Il modulo pickle non è sicuro».

Dettagli del formato

in sintesi
NOME COMPLETOPython Pickle Serialized Objectanche noto come Pickle file, .pkl file
SVILUPPATOREPython Software Foundation (Guido van Rossum, original pickle module)dal 1995 (Python 1.2, original pickle module)
CATEGORIAFile di dati
TIPO MIMEapplication/octet-stream
TIPOflusso binario di oggetti Python serializzati
Questa estensione è usata anche da…
  • Microsoft Exchange Migration Wizard Packing List - Il vecchio strumento di migrazione di Microsoft Exchange utilizzava .pkl per le liste di imballaggio; completamente non correlato a Python pickle.
MAGIC BYTES · FIRMA DEL FILE
OFFSET
000102
HEX
800495
ASCII
···
Protocollo 4: 0x80 0x04 0x95 (più comune, Python 3.4+). Protocollo 3: 0x80 0x03 (Python 3.0-3.3). Protocollo 2: 0x80 0x02 (Python 2.3+). Protocollo 0/1: nessun header magic (opcode testuali/binari, '\x80' assente). Protocollo 5: 0x80 0x05 (Python 3.8+).

Programmi che aprono file PKL

Windows3 apps
Python (pickle module) Open-source import pickle; obj = pickle.load(open('file.pkl', 'rb')) - quindi ispeziona obj.
Visual Studio Code (with Python extension) Gratuito Apri un notebook Jupyter o un terminale Python in VS Code; usa pickle.load() per ispezionare i contenuti.
Spyder IDE Open-source Usa Variable Explorer in Spyder o esegui pickle.load() nella console IPython.
macOS1 app
Python (pickle module) Open-source import pickle; obj = pickle.load(open('file.pkl', 'rb')) - quindi ispeziona obj.
Linux1 app
Python (pickle module) Open-source import pickle; obj = pickle.load(open('file.pkl', 'rb')) - quindi ispeziona obj.

Dettagli tecnici

specifiche approfondite
CodificaFlusso di opcode binari per la Pickle Virtual Machine (PVM)
Magic bytes Protocollo 480 04 95 all'offset 0 (Python 3.4+; predefinito in Python 3.8-3.11)
Magic bytes Protocollo 580 05 all'offset 0 (Python 3.8+, PEP 574, supporto buffer fuori banda per NumPy)
Magic bytes Protocollo 280 02 all'offset 0 (Python 2.3+, supporto classi new-style, PEP 307)
Intervallo protocolliDal Protocollo 0 (opcode testuali, 1995) al Protocollo 5 (Python 3.8+, 2019)
Struttura datiFlusso di opcode piatto con stack di operandi e tabella memo; l'opcode STOP (0x2E) segna la fine del flusso
SchemaNessuno schema fisso; la struttura è determinata interamente dall'oggetto Python serializzato
Tipo MIMEapplication/octet-stream (nessun tipo MIME registrato)
Dimensione tipica del file1 KB - diversi GB (da piccoli dizionari a grandi tensori di pesi per modelli ML)
Rischio di sicurezzaPossibile esecuzione di codice Python arbitrario su pickle.load() da fonti non attendibili
Portabilità tra linguaggiSolo Python; nessun altro linguaggio può leggere o scrivere nativamente questo formato
Uso moderno primarioSalvataggio modelli scikit-learn, pesi PyTorch (torch.save), modelli XGBoost, calcoli memorizzati in cache
Estensione intercambiabile.pickle è identico nel formato e completamente intercambiabile con .pkl
Libreria correlatajoblib incapsula pickle con ottimizzazioni di mappatura della memoria adatte per grandi array NumPy
Rilasciato1995 (Python 1.2, original pickle module)
Ultima versioneProtocol 5 (Python 3.8+, PEP 574, 2019)
Specificadocs.python.org

Domande e risposte della community

chiesto dagli utenti
Fai una domanda veloce
Ottieni aiuto da persone che lavorano con i file PKL. Sii specifico - includi il tuo sistema e la versione del software.
Nessun account necessario · risposte solitamente entro un giorno
A
ArnoSep 2026SENZA RISPOSTA
Comment créer un fichier pkl ?
In attesa di una risposta

Domande frequenti

Come si apre un file .pkl?
Usa Python: import pickle; obj = pickle.load(open('file.pkl', 'rb')). Carica solo i file pkl di cui ti fidi - possono eseguire codice al caricamento.
Un file .pkl è sicuro da aprire?
Solo se ti fidi della fonte. Pickle può eseguire codice Python arbitrario durante il caricamento. Non aprire mai file .pkl da fonti sconosciute.
Quale programma ha creato il mio file .pkl?
Quasi certamente Python - direttamente tramite pickle/joblib, o un framework come scikit-learn (model.fit poi joblib.dump) o PyTorch (torch.save).
Posso aprire un file .pkl senza Python?
Non in modo significativo. Pickle è specifico per Python. Hai bisogno di Python e idealmente della stessa libreria che ha creato il file (scikit-learn, PyTorch, ecc.).
Come converto .pkl in JSON o CSV?
Caricalo prima con Python pickle, quindi serializzalo: json.dump(obj, open('out.json','w')) per dati serializzabili in JSON, o pd.DataFrame(obj).to_csv() per dati tabulari.
Qual è la differenza tra .pkl e .pickle?
Sono identici - entrambi usano il formato pickle di Python. La scelta dell'estensione è una convenzione; .pkl è più comune nei contesti ML.

Riferimenti

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

Continua a esplorare

nel database

Migliori estensioni della settimana

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

Estensioni correlate

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

Strumenti file gratuiti

Un identificatore di file e convertitore di immagini nel browser - tutto viene eseguito sul tuo dispositivo.

Apri la cassetta degli attrezzi

Sfoglia le estensioni dei file A-Z