.PICKLE

Plik PICKLE

Python Pickle Serialization File
Zadaj pytanie
SZYBKA ODPOWIEDŹ

Plik PICKLE przechowuje zserializowany obiekt języka Python - wytrenowany model ML, zestaw danych lub strukturę danych - utworzony przez wbudowany moduł pickle. Otwórz go za pomocą Pythona: import pickle; data = pickle.load(open('file.pickle', 'rb')). Nigdy nie ładuj pliku pickle z niezaufanego źródła; może on wykonać dowolny kod na Twoim komputerze.

Deweloper: Python Software Foundation Kategoria: Pliki developerskie Otwarty standard MIME: application/octet-stream
OTWIERA SIĘ NA Windows macOS Linux
Powiązane: .DO · .MD · .HEX · .XSD

Na tej stronie

Zindeksowano 19k+ rozszerzeń
Ostatnia weryfikacja Jul 14, 2026

Nie wiesz, co to za plik?

Przeciągnij dowolny plik do naszego identyfikatora - odczytujemy tylko pierwsze bajty, aby nazwać format.

Zidentyfikuj plik

Co to jest format pliku PICKLE?

Pliki z rozszerzeniem .pickle przechowują obiekty Pythona zserializowane przy użyciu modułu pickle, wbudowanej biblioteki Pythona do serializacji obiektów. Zarówno .pickle, jak i .pkl są zamiennymi rozszerzeniami tego samego formatu; .pickle jest dłuższą, jawną formą, podczas gdy .pkl to kompaktowy, trójznakowy wariant używany od wersji Python 1.x.

Zawartość plików Python Pickle

Zserializowane obiekty w plikach .pickle mogą być dowolnego typu Pythona. Pliki .pickle są używane do serializacji obiektów baz danych, buforowania wag modeli uczenia maszynowego lub przechowywania stanu programu między uruchomieniami. Należy używać wyłącznie plików .pickle z zaufanych źródeł, ponieważ mogą one zawierać złośliwe oprogramowanie - deserializacja niezaufanego pliku pickle może wykonać dowolny kod Pythona. Obiekty pickle mogą być kompresowane zewnętrznie za pomocą gzip, bz2 lub lzma.

Jak powstają pliki Python PICKLE?

Proces serializacji nazywany jest „picklingiem” i odbywa się za pomocą metod dump() oraz dumps(). Metoda dump() służy do serializacji obiektu do pliku, natomiast dumps() zapisuje obiekt jako obiekt bajtowy. Deserializacja - konwersja strumienia bajtów z powrotem na oryginalny obiekt - odbywa się za pomocą load() i loads(); proces ten nazywany jest „unpicklingiem”.

Wersja protokołu pickle kontroluje format binarny. Protokół 0 to czytelny dla człowieka kod ASCII; protokoły 1-5 są progresywnie binarne, przy czym protokół 5 (Python 3.8+) dodaje bufory out-of-band dla wydajnej obsługi dużych tablic .NPY. W przepływach pracy uczenia maszynowego format .pickle jest szeroko stosowany do utrwalania modeli scikit-learn i punktów kontrolnych PyTorch, choć SafeTensors zyskuje na popularności jako bezpieczniejsza alternatywa, szczególnie dla wag modeli.

Bezpieczeństwo

RYZYKO: HIGH

KRYTYCZNE OSTRZEŻENIE: Pliki Pickle mogą wykonywać dowolny kod Pythona podczas ładowania. Złośliwy plik .pickle może usunąć pliki, pobrać złośliwe oprogramowanie lub przejąć kontrolę nad systemem. Nigdy nie ładuj pliku pickle z niezaufanego źródła. W przepływach pracy ML/AI złośliwe pliki pickle w repozytoriach modeli (Hugging Face Hub, GitHub) stanowią aktywne zagrożenie. Użyj picklescan do skanowania plików przed załadowaniem lub przejdź na format SafeTensors dla wag modeli. CVE-2025-1889: picklescan < 0.0.22 mógł zostać pominięty przy użyciu niestandardowych rozszerzeń plików w pakietach modeli opartych na archiwach.

Szczegóły formatu

w pigułce
PEŁNA NAZWAPython Pickle Serialization Fileznany również jako Python Pickle file, pickled object file
DEWELOPERPython Software Foundationod 1994 (Python 1.1; pickle module first released)
TYP MIMEapplication/octet-stream
TYPbinarny format serializacji
STANDARDOtwarty · bezpłatny
POWIĄZANE.do.md.hex.xsd
MAGICZNE BAJTY · SYGNATURA PLIKU
OFFSET
0001
HEX
8005
ASCII
··
Bajt magiczny różni się w zależności od protokołu: \x80\x00 (proto 0, czytelny dla człowieka), \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+). Protokół 0 nie posiada binarnej sygnatury - są to czytelne dla człowieka kody operacyjne ASCII. Wszystkie protokoły binarne zaczynają się od kodu operacyjnego 0x80, po którym następuje bajt wersji protokołu.

Programy otwierające pliki PICKLE

Windows3 apps
Python Open-source python -c „import pickle; import pprint; pprint.pprint(pickle.load(open('file.pickle','rb')))” - wypisuje zdeserializowany obiekt. Używaj tylko z zaufanymi plikami.
VS Code (with Python extension) Darmowy Otwórz terminal Pythona, zaimportuj pickle i załaduj plik interaktywnie w notatniku Jupyter lub Python REPL.
Jupyter Notebook / JupyterLab Open-source W komórce notatnika: import pickle; data = pickle.load(open('file.pickle','rb')); print(data)
macOS1 app
Python Open-source python -c „import pickle; import pprint; pprint.pprint(pickle.load(open('file.pickle','rb')))” - wypisuje zdeserializowany obiekt. Używaj tylko z zaufanymi plikami.
Linux1 app
Python Open-source python -c „import pickle; import pprint; pprint.pprint(pickle.load(open('file.pickle','rb')))” - wypisuje zdeserializowany obiekt. Używaj tylko z zaufanymi plikami.

Szczegóły techniczne

specyfikacja
Kodowanie plikuBinarny (protokoły 1-5); czytelne dla człowieka kody operacyjne ASCII (protokół 0)
Sygnatura pliku (magic bytes)0x80 po którym następuje bajt wersji protokołu; np. 0x80 0x05 dla protokołu 5 (Python 3.8+); protokół 0 nie posiada binarnej sygnatury
Protokoły Pickle0 (ASCII, Python 1.x); 1 (binarny, Python 1.x); 2 (klasy nowego stylu, Python 2.3+); 3 (bajty, Python 3.0+); 4 (obiekty >4 GB, Python 3.4+); 5 (bufory out-of-band, Python 3.8+)
Domyślny protokółProtokół 5 jest domyślny w Pythonie 3.8 i nowszych
KompresjaBrak wbudowanej; powszechnie pakowane zewnętrznie w gzip, bz2 lub lzma; joblib dodaje własną warstwę kompresji
SzyfrowanieBrak - brak wbudowanego szyfrowania; w razie potrzeby szyfruj na poziomie systemu plików lub warstwy opakowującej
Typowy rozmiar plikuPoniżej 1 MB dla konfiguracji modeli; od 1 MB do kilku GB dla wag modeli ML i dużych zestawów danych
Ryzyko bezpieczeństwaDeserializacja niezaufanych danych pickle może wykonać dowolny kod Pythona poprzez haki __reduce__ - nigdy nie wykonuj unpicklingu plików z niezaufanych źródeł
Struktura wewnętrznaStrumień kodów operacyjnych pickle kodujący obiekty Pythona rekurencyjnie; Protokół 4+ używa ramek do strumieniowania fragmentów; Protokół 5 dodaje bufory out-of-band dla kopiowania zerowego dużych tablic
Typ MIMEapplication/octet-stream (formalnie); application/x-pickle (nieformalnie)
WieloplatformowośćNiezależny od platformy; działa na każdym systemie operacyjnym obsługiwanym przez Pythona (Windows, Linux, macOS)
API serializacjidump() i dumps() dla picklingu; load() i loads() dla unpicklingu
Zastosowanie w ML/AIPodstawowy format serializacji dla modeli scikit-learn i punktów kontrolnych PyTorch; SafeTensors zyskuje na popularności jako bezpieczniejsza alternatywa dla wag modeli
Wydano1994 (Python 1.1; pickle module first released)
Najnowsza wersjaProtocol 5 (Python 3.8, 2019); default protocol 5 from Python 3.14
Otwarty standardTak · bezpłatny (royalty-free)
Specyfikacjadocs.python.org

Konwersje PICKLE

Pytania i odpowiedzi społeczności

pytania użytkowników
Zadaj szybkie pytanie
Uzyskaj pomoc od osób pracujących z plikami PICKLE. Bądź precyzyjny - podaj system i wersję oprogramowania.
Konto nie jest wymagane · odpowiedzi zazwyczaj w ciągu doby

Brak pytań - bądź pierwszą osobą, która zapyta o pliki PICKLE.

Najczęściej zadawane pytania

Jak otworzyć plik .pickle?
Użyj Pythona: import pickle; data = pickle.load(open('file.pickle', 'rb')). Ładuj pliki wyłącznie z zaufanych źródeł - pickle może wykonać dowolny kod.
Jaka jest różnica między .pickle a .pkl?
To ten sam format z różnymi rozszerzeniami. .pkl jest częściej spotykany w praktyce; .pickle to pełne słowo. Moduł pickle w Pythonie akceptuje oba.
Czy pliki pickle są bezpieczne do otwierania?
Tylko jeśli ufasz źródłu. Format pickle jest z natury niebezpieczny w przypadku niezaufanych danych - załadowanie złośliwego pliku pickle może wykonać dowolny kod na Twoim komputerze. W przypadku modeli ML z nieznanych źródeł, najpierw przeskanuj je za pomocą picklescan.
Czy mogę przekonwertować plik pickle na JSON?
Tylko jeśli zserializowany obiekt zawiera typy kompatybilne z JSON. Użyj Pythona: json.dump(pickle.load(open('file.pickle','rb')), open('out.json','w')). Złożone obiekty (tablice NumPy, instancje klas) wymagają niestandardowych serializatorów.
Którego protokołu Python powinienem użyć podczas zapisywania pliku pickle?
Użyj protocol=5 (Python 3.8+) dla najlepszej wydajności przy dużych danych, zwłaszcza tablicach NumPy. Użyj protocol=2, jeśli potrzebujesz kompatybilności z Python 2. Określ to za pomocą pickle.dump(obj, f, protocol=5).
Dlaczego mój plik pickle jest duży?
Pickle przechowuje pełny graf obiektów wraz z metadanymi klas. W przypadku tablic NumPy lub wag modeli ML użyj formatów skompresowanych: pickle.dump(obj, gzip.open('file.pkl.gz','wb')) lub przejdź na SafeTensors/HDF5.
Czy mogę otworzyć plik pickle w Excelu lub arkuszu kalkulacyjnym?
Nie bezpośrednio. Jeśli plik pickle zawiera pandas DataFrame, wyeksportuj go najpierw do CSV za pomocą Pythona: df.to_csv('out.csv').

Źródła

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

Odkrywaj dalej

w całej bazie danych

Najpopularniejsze rozszerzenia w tym tygodniu

1.AQQAQQ Instant Messenger File
2.BINCD/DVD Disc Image (BIN/CUE)
3.MDMarkdown Document
4.RPMSGRestricted Permission Message
5.CRDOWNLOADChrome Partial Download File
6.PARTPartial Download File
7.NOMEDIAAndroid No-Media Marker File
8.EXEWindows Executable (Portable Executable)
9.DBSQLite Database File
10.PKPASSApple Wallet Pass (formerly Passbook)

Powiązane rozszerzenia

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

Darmowe narzędzia do plików

Identyfikator plików i konwerter obrazów w przeglądarce - wszystko działa na Twoim urządzeniu.

Otwórz przybornik

Przeglądaj rozszerzenia plików A-Z