Python'da Nesneleri Kaydetmek İçin Turşu Nasıl Kullanılır

Varsayılan olarak Python kütüphanesinin bir parçası olan Turşu, kullanıcı oturumları arasında kalıcılığa ihtiyacınız olduğunda önemli bir modüldür. Bir modül olarak, turşu Python nesnelerinin süreçler arasında kaydedilmesini sağlar.

Bir programlamak için veri tabanı, oyun, forum veya oturumlar arasında bilgi kaydetmesi gereken başka bir uygulama, turşu tanımlayıcıları ve ayarları kaydetmek için yararlıdır. Turşu modülü, boolean, string ve bayt dizileri, listeler, sözlükler, fonksiyonlar ve daha fazlası gibi veri türleri saklayabilir.

Not: Asitleme kavramı serileştirme, marshaling ve flattening olarak da bilinir. Bununla birlikte, nokta her zaman aynıdır - bir nesneyi daha sonra almak üzere bir dosyaya kaydetmek. Turşu, nesneyi uzun bir bayt akışı olarak yazarak bunu başarır.

Python'da Turşu Örnek Kodu

Bir dosyaya nesne yazmak için aşağıdaki sözdiziminde bir kod kullanırsınız:

turşu ithal 
object = Object ()
filehandler = open (dosya adı, 'w')
pickle.dump (nesne, dosya işleyici)

Gerçek dünya örneği şöyle görünür:

turşu ithal 
matematik al
object_pi = math.pi
file_pi = açık ('dosyaadı_pi.obj', 'w')
pickle.dump (nesne_pi; dosya_pi)

Bu pasaj, object_pi dosyaya işleyici dosya_pibu da dosyaya bağlıdır filename_pi.obj yürütme dizininde.

Nesnenin değerini belleğe geri yüklemek için, nesneyi dosyadan yükleyin. Turşunun henüz kullanım için içe aktarılmadığını varsayarsak, aşağıdakileri içe aktararak başlayın:

turşu ithal 
filehandler = open (dosya adı, 'r')
object = pickle.load (dosya işleyici)

Aşağıdaki kod pi değerini geri yükler:

turşu ithal 
file_pi2 = açık ('dosyaadı_pi.obj', 'r')
object_pi2 = pickle.load (dosya_pi2)

Nesne daha sonra tekrar kullanıma hazırdır, bu sefer object_pi2. İsterseniz orijinal isimleri elbette tekrar kullanabilirsiniz. Bu örnek, netlik için farklı isimler kullanmaktadır.

Pickle Hakkında Hatırlamanız Gerekenler

Turşu modülünü kullanırken aşağıdakileri aklınızda bulundurun:

  • Turşu protokolü Python'a özgüdür - diller arası uyumlu olduğu garanti edilmez. Büyük olasılıkla bilgileri Perl, PHP, Java veya diğer dillerde kullanışlı hale getirmek için aktaramazsınız.
  • Farklı Python sürümleri arasında uyumluluk garantisi de yoktur. Uyumsuzluk var çünkü her Python veri yapısı modül tarafından serileştirilemiyor.
  • Varsayılan olarak, turşu protokolünün en son sürümü kullanılır. Manuel olarak değiştirmediğiniz sürece bu şekilde kalır.

İpucu: Ayrıca öğrenin Python'da nesneleri kaydetmek için raf nasıl kullanılır nesne sürekliliğini korumak için başka bir yöntem.

TikTokni.com