Tutorial ini akan mencakup modul pickle, yang merupakan bagian dari library standar Anda dengan instalasi Python Anda
Jadi apa itu pengawetan? . Unpicking adalah kebalikannya
Anda mungkin mendengar metodologi ini disebut serialisasi, marshalling atau perataan dalam bahasa lain, tetapi secara eksklusif disebut sebagai pengawetan dalam Python. Jadi, apa artinya pengawetan?
Pengawetan digunakan untuk menyimpan objek python. Ini berarti hal-hal seperti daftar, kamus, objek kelas, dan banyak lagi
Apa saja contohnya?
Secara umum, Anda akan menemukan pickling paling berguna dengan analisis data, di mana Anda melakukan tugas rutin pada data, seperti pra-pemrosesan. Selain itu, sangat masuk akal saat Anda bekerja dengan tipe data khusus Python, seperti kamus
Misalnya, kami menggunakan pengawetan dalam seri tutorial NLTK untuk menyimpan algoritme pembelajaran mesin terlatih kami. Hal ini dimaksudkan agar setiap kali kita ingin menggunakannya, kita tidak perlu terus-menerus melatihnya kembali yang memakan waktu cukup lama.
Sebagai gantinya, kami hanya melatih algoritme sekali, menyimpannya ke variabel [objek], lalu kami mengambilnya. Dalam kasus modul NLTK, membuat pengklasifikasi setiap kali membutuhkan waktu 5-15+ menit. Dengan acar, butuh waktu sekitar 5 detik
Jika Anda memiliki kumpulan data yang besar, misalnya, dan Anda memuat kumpulan data yang sangat besar itu ke dalam memori setiap kali Anda menjalankan program, mungkin masuk akal untuk mengambilnya, lalu memuatnya, karena itu akan menjadi
Mari kita tunjukkan contoh sederhana
import pickle example_dict = {1:"6",2:"2",3:"f"} pickle_out = open["dict.pickle","wb"] pickle.dump[example_dict, pickle_out] pickle_out.close[]
Pertama, impor acar untuk menggunakannya, lalu kita tentukan kamus contoh, yang merupakan objek Python
Selanjutnya, kami membuka file [perhatikan bahwa kami membuka untuk menulis byte dengan Python 3+], lalu kami menggunakan acar. dump[] untuk memasukkan dict ke dalam file yang dibuka, lalu tutup
Kode di atas akan menyimpan file acar untuk kita, sekarang kita perlu membahas cara mengakses file acar
pickle_in = open["dict.pickle","rb"] example_dict = pickle.load[pickle_in]_
Buka file acar
Gunakan acar. load[] untuk memuatnya ke var
Itu semua ada untuk itu, sekarang Anda dapat melakukan hal-hal seperti
print[example_dict] print[example_dict[3]]
Ini menunjukkan bahwa kami mempertahankan tipe data dict
Dengan menyimpan objek serial, sifatnya disertakan, jadi kita tidak perlu khawatir memuat hal-hal "sebagai" string, kamus, daftar, dll.
Python menyediakan modul acar untuk Serialisasi dan de-Serialisasi objek python seperti daftar, kamus, tupel, dll. Pengawetan juga disebut marshaling atau perataan dalam bahasa lain. Pengawetan digunakan untuk menyimpan objek python
- Serialisasi atau Pengawetan. Pengawetan atau Serialisasi adalah proses mengubah objek Python [daftar, dikt, tupel, dll. ] menjadi aliran byte yang dapat disimpan ke disk atau dapat ditransfer melalui jaringan
- De-serialization atau un pickling. Aliran byte yang disimpan pada file berisi informasi yang diperlukan untuk merekonstruksi objek python asli. Proses mengubah aliran byte kembali ke objek python disebut de-serialisasi
Sintaksis
Di bawah ini adalah langkah-langkah pengawetan dengan python
- Impor modul acar
- Use pickle.dump[object, filename] method to save the object into file : this will save the object in this file in byte format.
- Gunakan acar. memuat [nama file]. untuk memuat kembali objek python dari file tempatnya dibuang sebelumnya
Contoh Acar Python
Contoh-contoh berikut diberikan di bawah ini
Mulai Kursus Pengembangan Perangkat Lunak Gratis Anda
Pengembangan web, bahasa pemrograman, pengujian Perangkat Lunak & lainnya
Paket Pengembangan Perangkat Lunak Semua dalam Satu[600+ Kursus, 50+ proyek]
Harga
Lihat Kursus
600+ Kursus Daring. 50+ proyek. 3000+ Jam. Sertifikat yang Dapat Diverifikasi. Akses Seumur Hidup
4. 6 [86.502 peringkat]
Contoh 1
Program untuk mengilustrasikan pengawetan daftar python
Kode
# Program for pickling python lists
# importing module
print['']
import pickle
# number of input data to take
n = int[input["Enter the number of items"]]
data = [] # input list
# adding items to the list
for d in range[n]:
item = input["Enter data :" + str[d+1]+': ']
data.append[[item]]
# open a file where data need to be stored
file = open['list.pkl', 'wb']
# dump information to the file
pickle.dump[data, file]
# close the file
file.close[]
print['\n']
print['']
# open the file where data is dumped
fileo = open['list.pkl', 'rb']
# loading data
datao = pickle.load[fileo]
# close the file
fileo.close[]
# showing pickled data
print["showing data pickled"]
for i in datao:
print[i]
Keluaran
Penjelasan untuk kode di atas
Pengawetan
- Modul acar diimpor
- jumlah item [n] untuk ditambahkan ke daftar kosong diminta oleh pengguna
- menggunakan untuk loop "n" jumlah item ditambahkan ke daftar
- file baru dibuka dalam mode tulis-byte "wb".
- daftar akan disimpan ke file ini menggunakan acar. membuang[] metode
- file ditutup
Tidak Mengawetkan
- file di mana daftar dibuang dibuka dalam mode read-bytes "RB".
- data diambil dari file menggunakan acar. memuat[]
- file ditutup
- data dimuat dicetak dengan melintasi daftar
Contoh #2
Program untuk mengilustrasikan pengawetan kamus python
Kode
# Python program for serialization and de-serialization of dictionary
# importing module
import pickle
# creating python object --> dictionary
dictionary = {1: 'monday', 2: 'tuesday', 3: 'wednesday', 4: 'thursday', 5: 'friday', 6: 'saturday', 7: 'sunday'}
print['']
# open a file where to store dictionary
print["dictionary to be stored:"]
print[dictionary]
file = open['dictionary.pkl', 'wb']
pickle.dump[dictionary, file] # storing dictionary into file
# closing file
file.close[]
print['\n']
print['']
fileo = open['dictionary.pkl', 'rb']
dicto = pickle.load[fileo]
fileo.close[]
print["displaying dictionary data"]
for key, item in dicto.items[]:
print[key, '-->', item]
_Keluaran
Penjelasan untuk kode di atas
- Modul acar diimpor
- objek python, kamus, dalam hal ini, dibuat
- file tempat kamus akan disimpan dibuka dalam mode tulis-byte "wb".
- kamus dibuang menggunakan acar. membuang[] metode
- file ditutup
- untuk mengambil file kamus dibuka dalam mode read-bytes “RB”.
- file ditutup
- item kamus kemudian dicetak menggunakan for loop
Contoh #3
Program untuk mengilustrasikan pengawetan fungsi python
Kode
# Python program for serialization and de-serialization of function
# importing module
import pickle
# creating python object --> function[]
# pickling
def add[a, b]:
return [a+b]
# opening file to store the add[]
file = open['function.pkl', 'wb']
pickle.dump[add, file]
# closing file
file.close[]
# unpickling
fileo = open['function.pkl', 'rb']
addition = pickle.load[fileo]
fileo.close[]
# calling function
x = int[input["enter first number"]]
y = int[input["enter second number"]]
print["sum of numbers entered is :", addition[x, y]]
Keluaran
Penjelasan untuk kode di atas
- Modul acar diimpor
- fungsi add[] dibuat à objek Python yang akan disimpan ke dalam file
- file dibuka dalam mode tulis-byte "wb".
- menggunakan acar. dump[], fungsi add[] dibuang atau disimpan dalam file ini
- file ditutup
- untuk mengambil file fungsi sekarang dibuka dalam mode read-bytes “RB”.
- menggunakan acar. load[], add[] dimuat
- pengguna kemudian diminta untuk dua angka yang diteruskan ke add[]
- Penjumlahan dari dua angka dicetak
Keuntungan dan Kerugian dengan penggunaan Pengawetan
- Ini digunakan untuk menyimpan objek Python. Kita tidak perlu membuat objek yang sama lagi dan lagi. Kami akan membuat objek satu kali dan kemudian menyimpannya ke dalam disk [pengawetan], dan nanti, kami memuat objek ini dari disk [unpickling] tanpa harus membuat objek lagi
- Pengawetan sebagian besar berguna dalam Pembelajaran Mesin. Model pembelajaran mesin dilatih pada kumpulan data yang sangat besar, dan melatih model menghabiskan banyak waktu. Jadi jika kita harus melatih model yang sama, itu tidak akan menjadi panggilan yang baik lagi dan lagi. Untuk menghindari atau mengurangi waktu dan kerja keras, pengawetan sangat berguna. Kita harus melatih model kita sekali saja, yang kemudian dapat disimpan ke dalam disk lokal, dan ketika kita perlu menguji model kita, kita dapat memuatnya dari disk tanpa harus melatihnya lagi
- Karena khusus untuk Python saja, ini tidak menjamin kompatibilitas lintas bahasa
- Bahkan versi python yang berbeda tidak kompatibel satu sama lain. Artinya pengawetan yang dilakukan adalah python versi 2. x mungkin tidak berfungsi di python versi 3. x
- Menghapus data dari sumber yang tidak dikenal harus dihindari karena mungkin berisi data berbahaya atau salah
Kesimpulan
Modul acar Python adalah cara yang bagus untuk menyimpan objek python seperti tuple, kamus, daftar, dan bahkan kelas dan fungsi python dapat diserialkan dan dide-serialkan. Tapi itu mungkin tidak mendukung kompatibilitas lintas bahasa, beberapa versi python. Selain itu, membongkar dari sumber yang tidak dikenal harus dihindari karena mungkin mengandung data yang berbahaya dan salah
Artikel yang Direkomendasikan
Ini adalah panduan untuk Python Pickle. Disini kita bahas pengenalan Python Pickle beserta contoh dan kelebihan & kekurangannya. Anda juga dapat membaca artikel terkait lainnya untuk mempelajari lebih lanjut –