Python

Cara mengambil benda di Python

Cara mengambil benda di Python
Sebarang data boleh diserialisasikan dan didesialisasikan di Python dengan menggunakan modul JSON dan Pickle. Sebelum menyimpan sebarang data dalam fail, objek Python bersiri menggunakan modul pickle. Objek Python ditukar menjadi aliran watak dengan menggunakan modul ini. Apabila pengguna ingin mengambil data fail untuk menggunakan skrip python lain maka data fail tersebut terdeseralisasikan oleh modul pickle. Ciri-ciri modul pickle dan bagaimana modul ini dapat digunakan dalam skrip python untuk serialisasi dan deserialisasi dijelaskan dalam tutorial ini.

Ciri Acar:

dump () untuk bersiri:

fungsi dump () digunakan untuk mengubah data objek menjadi aliran karakter sebelum disimpan dalam fail. Fungsi ini boleh mengambil tiga hujah. Dua argumen pertama adalah wajib dan argumen terakhir adalah pilihan. Argumen pertama mengambil objek data yang perlu bersiri. Argumen kedua mengambil objek pengendali fail fail itu di mana data pckled akan disimpan. Argumen terakhir mengambil nama protokol.

Sintaks:

lambakan (data_object, file_object, [protokol])

beban () untuk deserialisasi:

fungsi load () digunakan untuk menukar data aliran watak dari fail menjadi objek Python. Fungsi ini hanya mengandungi satu argumen dan objek pengendali fail berlalu sebagai nilai argumen dari mana data akan diambil.

Sintaks:

muat (fail_objek)

Ambil Objek sederhana untuk disimpan dalam fail

Buat fail bernama acar1.py dengan skrip python berikut.  Dalam skrip berikut, objek data bernama dataObjek dinyatakan menyimpan lima nama bahasa dengan mengulangi gelung untuk. Seterusnya, kaedah open () digunakan untuk menetapkan pengendali fail untuk membuat fail binari bernama bahasa. pembuangan() fungsi digunakan di sini untuk membuat siri data dataObjek dan simpan di bahasa fail.  Sekiranya serialisasi akan dilakukan dengan betul maka pesan, "Data bersiri" akan dicetak.

# Import modul acar
acar import
# Menyatakan objek untuk menyimpan data
dataObject = []
# Ulangi gelung untuk 5 kali dan ambil nama bahasa
untuk n dalam julat (5):
mentah = input ('Masukkan nama bahasa:')
dataObjek.tambahkan (mentah)
# Buka fail untuk menulis data
file_handler = terbuka ('bahasa', 'wb')
# Buangkan data objek ke dalam fail
acar.lambakan (dataObject, file_handler)
# tutup pengendali fail untuk melepaskan sumber
fail_handler.tutup ()
# Cetak mesej
cetak ('Data bersiri')

Pengeluaran:

Setelah menjalankan skrip, ia akan mengambil lima nama bahasa sebagai input.

Batalkan pengambilan data dari fail

membongkar data adalah kebalikan dari pengambilan data. Buat fail bernama acar2.py dengan skrip python berikut. Di sini, buka() kaedah digunakan untuk membuka fail binari yang diberi nama bahasa, dibuat dalam contoh sebelumnya. beban () fungsi digunakan untuk membongkar data dari fail dan menyimpannya dalam pemboleh ubah dataObjek. Seterusnya, untuk gelung digunakan mengulangi data dari dataObjek dan cetak di terminal.

# Import modul acar
acar import
# Buka pengendali fail untuk membaca fail dari mana data akan dimuat
file_handler = terbuka ('bahasa', 'rb')
# Muatkan data dari fail setelah deserialisasi
dataObject = acar.memuatkan (file_handler)
# Tutup pengendali fail
fail_handler.tutup ()
# Cetak mesej
cetak ('Data selepas deserialisasi')
# Ulangi gelung untuk mencetak data setelah deserialisasi
untuk val in dataObject:
cetak ('Nilai data:', val)

Pengeluaran:

Output berikut akan muncul setelah menjalankan skrip.

Jemput Objek Kelas ke fail

Bagaimana objek kelas dapat dijemput ditunjukkan dalam contoh berikut. Buat fail bernama acar3.py dengan skrip berikut. Di sini, Pekerja kelas diisytiharkan untuk menetapkan tiga nilai data seorang pekerja. Seterusnya, objek pengendali fail bernama fileHandler dibuat untuk membuka fail untuk ditulis. Setelah memulakan objek kelas, data bersiri menggunakan pembuangan() berfungsi dan disimpan dalam fail bernama pekerjaData. Sekiranya fail akan dibuat dengan betul maka mesejnya, "Data bersiri" akan mencetak.

# Modul acar import
acar import
# Menyatakan kelas pekerja untuk menyimpan nilai
Pekerja kelas:
def __init __ (diri, nama, e-mel, jawatan):
diri.nama = nama
diri.e-mel = e-mel
diri.jawatan = jawatan
 
#Buat objek pekerja
empObject = Pekerja ('Farheen', '[dilindungi e-mel]', 'Pengurus')
# Buka fail untuk menyimpan data
fileHandler = terbuka ('pegawaiData', 'wb')
# Simpan data ke dalam fail
acar.lambakan (empObject, fileHandler)
# Tutup fail
fileHandler.tutup ()
# Cetak mesej
cetak ('Data bersiri')

Pengeluaran:

Output berikut akan muncul setelah menjalankan skrip.

Buka data ke Objek Kelas

Kelas dengan sifat dan kaedah yang diperlukan perlu menyatakan untuk mengambil data dari fail ke objek kelas. Buat fail bernama acar4.py dengan kod berikut. Pekerja kelas ditakrifkan di sini untuk mengambil data. failObjek pemboleh ubah digunakan untuk membuka fail, pekerjaData untuk membaca. Seterusnya, beban () fungsi digunakan untuk menyimpan data di objek kelas setelah deserialisasi. paparan () fungsi Pekerja kelas dipanggil untuk mencetak nilai data objek kelas.

# Modul acar import
acar import
# Menyatakan kelas pekerja untuk membaca dan mencetak data dari fail
Pekerja kelas:
def __init __ (diri, nama, e-mel, jawatan):
diri.nama = nama
diri.e-mel = e-mel
diri.jawatan = jawatan
paparan def (diri):
cetak ('Maklumat Pekerja:')
cetak ('Nama:', diri sendiri.nama)
cetak ('E-mel:', diri sendiri.e-mel)
cetak ('Post:', diri.jawatan)
 
# Buka fail untuk dibaca
fileObject = terbuka ('pegawaiData', 'rb')
# Pilih data
pekerja = acar.memuatkan (fileObject)
# Tutup fail
failObjek.tutup ()
#cetak kerangka data
pekerja.paparan ()

Pengeluaran:

Output berikut akan muncul setelah menjalankan skrip.

Kesimpulannya

Modul Pickle adalah ciri berguna python untuk serialisasi data dan deserialisasi. Setelah menyelesaikan contoh yang ditunjukkan dalam tutorial ini, pemindahan data dari satu skrip python ke skrip python yang lain akan lebih mudah bagi sesiapa sahaja.

Cara Menunjukkan Kaunter FPS dalam Permainan Linux
Permainan Linux mendapat dorongan utama ketika Valve mengumumkan sokongan Linux untuk klien Steam dan permainan mereka pada tahun 2012. Sejak itu, ban...
Cara memuat turun dan Mainkan Sid Meier's Civilization VI di Linux
Pengenalan permainan Civilization 6 adalah konsep moden mengenai konsep klasik yang diperkenalkan dalam siri permainan Age of Empires. Idea itu cukup ...
Cara Memasang dan Memainkan Doom di Linux
Pengenalan Doom Seri Doom berasal dari tahun 90an selepas pembebasan Doom yang asal. Ini adalah hit seketika dan sejak saat itu dan seterusnya siri pe...