Menggunakan Shelve untuk Menyimpan Objek dengan Python

Shelve adalah modul Python yang kuat untuk kegigihan objek. Saat Anda menyimpan objek, Anda harus menetapkan kunci untuk mengetahui nilai objek. Dengan cara ini, file rak menjadi basis data nilai yang tersimpan, yang mana saja dapat diakses kapan saja.

Kode Contoh untuk Shelve in Python

Untuk menyimpan objek, pertama impor modul dan kemudian menetapkan nilai objek sebagai berikut:

 rak impor 
database = shelve.open (filename.suffix)
object = Object ()
database ['key'] = objek

Jika Anda ingin menyimpan database saham, misalnya, Anda dapat mengadaptasi kode berikut:

 rak impor 
stockvalues_db = shelve.open ('stockvalues.db')
object_ibm = Values.ibm ()
stockvalues_db ['ibm'] = object_ibm
object_vmw = Values.vmw ()
stockvalues_db ['vmw'] = object_vmw
object_db = Values.db ()
stockvalues_db ['db'] = object_db

"Nilai saham.db" sudah dibuka, Anda tidak perlu membukanya lagi. Sebaliknya, Anda dapat membuka banyak basis data sekaligus, menulisnya sesuka hati, dan pergi Python untuk menutupnya ketika program berakhir. Anda bisa, misalnya, menyimpan basis data nama yang terpisah untuk setiap simbol, menambahkan yang berikut ini ke kode sebelumnya:

instagram viewer

 ## dengan asumsi rak sudah diimpor 
stocknames_db = shelve.open ('stocknames.db')
objectname_ibm = Names.ibm ()
stocknames_db ['ibm'] = objectname_ibm
objectname_vmw = Names.vmw ()
stocknames_db ['vmw'] = objectname_vmw
objectname_db = Names.db ()
stocknames_db ['db'] = objectname_db

Perhatikan bahwa setiap perubahan nama atau akhiran dari file database merupakan file yang berbeda dan, oleh karena itu, database yang berbeda.

Hasilnya adalah file database kedua yang berisi nilai yang diberikan. Tidak seperti kebanyakan file yang ditulis dalam format gadungan, database yang disimpan diselamatkan dalam bentuk biner.

Setelah data ditulis ke file, itu dapat ditarik kembali kapan saja. Jika Anda ingin mengembalikan data di sesi berikutnya, Anda membuka kembali file. Jika sesi yang sama, cukup ingat nilainya; mengesampingkan file basis data dibuka dalam mode baca-tulis. Berikut ini adalah sintaks dasar untuk mencapai ini:

 rak impor 
database = shelve.open (filename.suffix)
object = database ['key']

Jadi contoh dari contoh sebelumnya akan membaca:

 rak impor 
stockname_file = shelve.open ('stocknames.db')
stockname_ibm = stockname_file ['ibm']
stockname_db = stockname_file ['db']

Pertimbangan Dengan Shelve

Penting untuk dicatat bahwa database tetap terbuka sampai Anda menutupnya (atau sampai program berakhir). Oleh karena itu, jika Anda menulis program dengan ukuran apa pun, Anda ingin menutup database setelah bekerja dengannya. Jika tidak, seluruh basis data (bukan hanya nilai yang Anda inginkan) duduk di memori dan dikonsumsi sumber daya komputasi.

Untuk menutup file rak, gunakan sintaks berikut:

 database.close () 

Jika semua contoh kode di atas dimasukkan ke dalam satu program, kita akan memiliki dua file database terbuka dan memakan memori pada saat ini. Jadi, setelah membaca nama-nama saham dalam contoh sebelumnya, Anda kemudian dapat menutup setiap basis data sebagai berikut:

 stockvalues_db.close () 
stocknames_db.close ()
stockname_file.close ()

instagram story viewer