Python'da Nesneleri Kaydetmek İçin Raf Kullanma

Raf, nesne kalıcılığı için güçlü bir Python modülüdür. Bir nesneyi rafa kaldırdığınızda, nesne değerinin bilindiği bir anahtar atamanız gerekir. Bu şekilde, raf dosyası saklanan değerlerin bir veritabanı haline gelir ve bunlara herhangi bir zamanda erişilebilir.

Python'daki Raflar için Örnek Kod

Bir nesneyi rafa almak için önce modülü içe aktarın ve ardından nesne değerini aşağıdaki gibi atayın:

 ithalat hasıraltı 
veritabanı = shelve.open (dosyaadı.suffix)
object = Object ()
database ['key'] = nesne

Örneğin, bir stok veritabanını saklamak istiyorsanız, aşağıdaki kodu uyarlayabilirsiniz:

 ithalat hasıraltı 
stockvalues_db = shelve.open ('stockvalues.db')
object_ibm = Değerler.ibm ()
stockvalues_db ['ibm'] = nesne_ibm
object_vmw = Değerler.vmw ()
stockvalues_db ['vmw'] = nesne_vmw
object_db = Değerler.db ()
stockvalues_db ['db'] = nesne_db

Bir "hisse senedi değerleri.db" zaten açıldı, tekrar açmanıza gerek yok. Bunun yerine, aynı anda birden fazla veritabanı açabilir, her birine istediğiniz zaman yazabilir ve ayrılabilirsiniz

instagram viewer
piton program sona erdiğinde bunları kapatmak için. Örneğin, her bir sembol için, önceki koda aşağıdakileri ekleyerek ayrı bir ad veritabanı tutabilirsiniz:

 ## rafın zaten içe aktarıldığını varsayarsak 
stocknames_db = shelve.open ('stocknames.db')
objectname_ibm = Adlar.ibm ()
stocknames_db ['ibm'] = nesneadı_ibm
objectname_vmw = Adlar.vmw ()
stocknames_db ['vmw'] = nesneadı_vmw
objectname_db = Adlar.db ()
stocknames_db ['db'] = nesneadı_db

Veritabanı dosyasının adında veya sonekindeki herhangi bir değişikliğin farklı bir dosya ve dolayısıyla farklı bir veritabanı oluşturduğunu unutmayın.

Sonuç, verilen değerleri içeren ikinci bir veritabanı dosyasıdır. Kendiliğinden biçimlendirilmiş formatlarda yazılan çoğu dosyanın aksine, raflanmış veritabanları Kayıtlı ikili biçimde.

Veriler dosyaya yazıldıktan sonra, herhangi bir zamanda geri çağrılabilir. Daha sonraki bir oturumda verileri geri yüklemek isterseniz, dosyayı yeniden açın. Aynı oturum ise, değeri hatırlayın; raf veritabanı dosyaları okuma-yazma modunda açılır. Bunu başarmak için temel sözdizimi aşağıdadır:

 ithalat hasıraltı 
veritabanı = shelve.open (dosyaadı.suffix)
object = veritabanı ['anahtar']

Dolayısıyla, önceki örnekten bir örnek şöyle olacaktır:

 ithalat hasıraltı 
stockname_file = shelve.open ('stocknames.db')
stockname_ibm = stok adı_dosya ['ibm']
stockname_db = stok adı_dosya ['db']

Raflı Dikkat Edilmesi Gerekenler

Veritabanının siz kapatana kadar (veya program sonlanıncaya kadar) açık kaldığını unutmamak önemlidir. Bu nedenle, herhangi bir boyutta bir program yazıyorsanız, onunla çalıştıktan sonra veritabanını kapatmak istersiniz. Aksi takdirde, tüm veritabanı (yalnızca istediğiniz değer değil) bellekte kalır ve bilgi işlem kaynakları.

Bir raf dosyasını kapatmak için aşağıdaki sözdizimini kullanın:

 database.close () 

Yukarıdaki kod örneklerinin tümü bir programa dahil edilmiş olsaydı, bu noktada açık ve bellek tüketen iki veritabanı dosyamız olurdu. Dolayısıyla, önceki örnekte hisse senedi adlarını okuduktan sonra, her veritabanını sırayla aşağıdaki gibi kapatabilirsiniz:

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