.PKL

Fichier PKL

Python Pickle Serialized Object
Poser une question
RÉPONSE RAPIDE

Un fichier PKL est presque toujours un fichier Python Pickle - un instantané binaire d'un objet Python tel qu'un modèle de ML entraîné, un jeu de données ou un dictionnaire. Ouvrez-le avec le module pickle de Python. N'ouvrez jamais un fichier PKL provenant d'une source non fiable : Pickle peut exécuter du code arbitraire lors du chargement.

Développeur : Python Software Foundation (Guido van Rossum, original pickle module) Catégorie : Fichiers de données MIME: application/octet-stream
S'OUVRE SUR Windows macOS Linux
Lié : .PKPASS · .DAT · .JSON · .RIS

Sur cette page

19k+ extensions indexées
Dernière révision le Aug 2, 2026

Pas sûr de la nature de votre fichier ?

Déposez n'importe quel fichier dans notre identificateur - nous lisons juste les premiers octets pour nommer le format.

Identifier un fichier

Qu'est-ce que le format de fichier PKL ?

Un fichier .pkl contient un objet Python sérialisé à l'aide du module pickle de la bibliothèque standard Python. Le « pickling » convertit presque n'importe quelle structure de données Python - dictionnaires, listes, instances de classe, tableaux NumPy, modèles d'apprentissage automatique entraînés - en un flux d'octets qui peut être enregistré sur disque et restauré plus tard avec pickle.load().

Le format utilise une machine virtuelle Pickle (PVM) basée sur une pile : un flux d'opcodes d'un seul octet qui, lorsqu'ils sont exécutés, reconstruisent l'objet original. Les versions de protocole vont du Protocole 0 (opcodes textuels, Python 1.2) au Protocole 5 (Python 3.8+, PEP 574, prenant en charge les tampons hors bande pour les grands tableaux NumPy). Le Protocole 4 (octets magiques 80 04 95) est le protocole par défaut dans Python 3.8-3.11. Il n'y a pas de schéma fixe ; la structure du flux d'octets est entièrement déterminée par l'objet sérialisé.

L'utilisation moderne dominante est la sauvegarde de modèles de ML entraînés provenant de scikit-learn, PyTorch (torch.save encapsule pickle en interne) et XGBoost, ainsi que la mise en cache de résultats de calcul coûteux. La bibliothèque joblib (qui utilise également pickle) est préférée pour les grands tableaux NumPy en raison de sa prise en charge du mappage mémoire.

Avertissement de sécurité : le chargement d'un fichier .pkl provenant d'une source non fiable peut exécuter du code Python arbitraire. Les alternatives plus sûres incluent .json pour les données simples, HDF5 ou Parquet pour les données tabulaires, et ONNX ou safetensors pour les modèles de ML. Les extensions .pkl et .pickle sont totalement interchangeables.

Sécurité et sûreté

RISQUE : HIGH

Python Pickle peut exécuter du code arbitraire pendant le chargement (via __reduce__ / opcode REDUCE). Un fichier .pkl malveillant est un vecteur d'attaque par exécution de code - traitez-le comme un exécutable. Ne chargez que des fichiers .pkl provenant de sources en lesquelles vous avez une entière confiance. Pour le partage de modèles de ML, préférez les formats safetensors (HuggingFace) ou ONNX qui ne peuvent pas exécuter de code au chargement. La documentation de pickle prévient explicitement : « Le module pickle n'est pas sécurisé. »

Détails du format

en bref
NOM COMPLETPython Pickle Serialized Objectalias Pickle file, .pkl file
DÉVELOPPEURPython Software Foundation (Guido van Rossum, original pickle module)depuis 1995 (Python 1.2, original pickle module)
TYPE MIMEapplication/octet-stream
TYPEflux d'objets Python sérialisés binaires
Cette extension est également utilisée par…
  • Microsoft Exchange Migration Wizard Packing List - L'ancien outil de migration Microsoft Exchange utilisait .pkl pour les listes de colisage ; totalement sans rapport avec Python pickle.
OCTETS MAGIQUES · SIGNATURE DE FICHIER
OFFSET
000102
HEX
800495
ASCII
···
Protocole 4 : 0x80 0x04 0x95 (le plus courant, Python 3.4+). Protocole 3 : 0x80 0x03 (Python 3.0-3.3). Protocole 2 : 0x80 0x02 (Python 2.3+). Protocole 0/1 : pas d'en-tête magique (opcodes texte/binaires, '\x80' absent). Protocole 5 : 0x80 0x05 (Python 3.8+).

Programmes qui ouvrent les fichiers PKL

Windows3 apps
Python (pickle module) Open-source import pickle; obj = pickle.load(open('file.pkl', 'rb')) - puis inspectez obj.
Visual Studio Code (with Python extension) Gratuit Ouvrez un notebook Jupyter ou un terminal Python dans VS Code ; utilisez pickle.load() pour inspecter le contenu.
Spyder IDE Open-source Utilisez l'Explorateur de variables dans Spyder ou exécutez pickle.load() dans la console IPython.
macOS1 app
Python (pickle module) Open-source import pickle; obj = pickle.load(open('file.pkl', 'rb')) - puis inspectez obj.
Linux1 app
Python (pickle module) Open-source import pickle; obj = pickle.load(open('file.pkl', 'rb')) - puis inspectez obj.

Détails techniques

spécifications approfondies
EncodageFlux d'opcodes binaires pour la machine virtuelle Pickle (PVM)
Octets magiques Protocole 480 04 95 à l'offset 0 (Python 3.4+ ; par défaut dans Python 3.8-3.11)
Octets magiques Protocole 580 05 à l'offset 0 (Python 3.8+, PEP 574, support des tampons hors bande pour NumPy)
Octets magiques Protocole 280 02 à l'offset 0 (Python 2.3+, support des classes de nouveau style, PEP 307)
Plage de protocolesProtocole 0 (opcodes texte, 1995) au Protocole 5 (Python 3.8+, 2019)
Structure des donnéesFlux d'opcodes plat avec pile d'opérandes et table mémo ; l'opcode STOP (0x2E) marque la fin du flux
SchémaAucun schéma fixe ; la structure est entièrement déterminée par l'objet Python sérialisé
Type MIMEapplication/octet-stream (aucun type MIME enregistré)
Taille de fichier typique1 Ko - plusieurs Go (des petits dictionnaires aux grands tenseurs de poids de modèles ML)
Risque de sécuritéExécution de code Python arbitraire possible lors de pickle.load() depuis des sources non fiables
Portabilité multi-langagePython uniquement ; aucun autre langage ne peut lire ou écrire nativement ce format
Usage moderne principalSauvegarde de modèles scikit-learn, poids PyTorch (torch.save), modèles XGBoost, calculs mis en cache
Extension interchangeable.pickle est identique au format et totalement interchangeable avec .pkl
Bibliothèque associéejoblib encapsule pickle avec des optimisations de mappage mémoire adaptées aux grands tableaux NumPy
Publié1995 (Python 1.2, original pickle module)
Dernière versionProtocol 5 (Python 3.8+, PEP 574, 2019)
Spécificationdocs.python.org

Q&R de la communauté

posées par les utilisateurs
Poser une question rapide
Obtenez de l'aide de personnes qui travaillent avec des fichiers PKL. Soyez précis - incluez votre système et la version du logiciel.
Aucun compte requis · réponses généralement sous un jour
A
ArnoSep 2026SANS RÉPONSE
Comment créer un fichier pkl ?
En attente d'une réponse

Foire aux questions

Comment ouvrir un fichier .pkl ?
Utilisez Python : import pickle; obj = pickle.load(open('file.pkl', 'rb')). Ne chargez que des fichiers pkl en lesquels vous avez confiance - ils peuvent exécuter du code lors du chargement.
Un fichier .pkl est-il sûr à ouvrir ?
Uniquement si vous faites confiance à la source. Pickle peut exécuter du code Python arbitraire pendant le chargement. N'ouvrez jamais de fichiers .pkl provenant de sources inconnues.
Quel programme a créé mon fichier .pkl ?
Presque certainement Python - soit directement via pickle/joblib, soit via un framework comme scikit-learn (model.fit puis joblib.dump) ou PyTorch (torch.save).
Puis-je ouvrir un fichier .pkl sans Python ?
Pas de manière significative. Pickle est spécifique à Python. Vous avez besoin de Python et idéalement de la même bibliothèque qui a créé le fichier (scikit-learn, PyTorch, etc.).
Comment convertir un .pkl en JSON ou CSV ?
Chargez-le d'abord avec Python pickle, puis sérialisez-le : json.dump(obj, open('out.json','w')) pour les données sérialisables en JSON, ou pd.DataFrame(obj).to_csv() pour les données tabulaires.
Quelle est la différence entre .pkl et .pickle ?
Ils sont identiques - les deux utilisent le format pickle de Python. Le choix de l'extension est une convention ; .pkl est plus courant dans les contextes de ML.

Références

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

Continuer l'exploration

à travers la base de données

Top des extensions cette semaine

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

Extensions liées

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

Outils de fichiers gratuits

Un identificateur de fichier et un convertisseur d'images dans le navigateur - tout s'exécute sur votre appareil.

Ouvrir la boîte à outils

Parcourir les extensions de fichiers A-Z