Python'da nesneler nasıl seçilir?

How Pickle Objects Python



Python'da JSON ve Pickle modülü kullanılarak herhangi bir veri seri hale getirilebilir ve seri hale getirilebilir. Herhangi bir veriyi bir dosyaya kaydetmeden önce, Python nesneleri pickle modülü kullanılarak serileştirilir. Python nesneleri bu modül kullanılarak karakter akışlarına dönüştürülür. Kullanıcı başka bir python betiği kullanmak için dosyanın verilerini almak istediğinde, dosyanın verileri pickle modülü tarafından seri hale getirilir. Pickle modülünün özellikleri ve bu modülün serileştirme ve seri durumdan çıkarma için python betiğinde nasıl kullanılabileceği bu öğreticide açıklanmaktadır.

Turşu Özellikleri:

  • Esas olarak Python betiği için kullanılmak üzere tasarlanmıştır.
  • İşlemler arasında python nesnelerini kaydetmek için kullanılır.
  • Serileştirilmiş tüm nesneleri takip eder ve daha önce seri hale getirilen nesne bir daha seri hale gelmez.
  • Sınıf örneğini şeffaf bir şekilde kaydedebilir ve geri yükleyebilir.
  • Kullanımı güvenli değildir. Bu nedenle, bilinmeyen bir kaynaktan gelen verileri ayıklamak daha iyi değildir.

serileştirme için dump():

dump() işlevi, bir dosyaya kaydetmeden önce nesne verilerini bir karakter akışına dönüştürmek için kullanılır. Bu fonksiyon üç argüman alabilir. İlk iki argüman zorunludur ve son argüman isteğe bağlıdır. İlk argüman, serileştirilmesi gereken bir veri nesnesi alır. İkinci argüman, pckled verilerinin saklanacağı dosyanın dosya işleyici nesnesini alır. Son argüman protokol adını alır.







Sözdizimi:



çöplük(veri_nesnesi,dosya_nesnesi, [protokol])

seri durumdan çıkarma için load():

load() işlevi, dosyadan karakter akışı verilerini bir Python nesnesine dönüştürmek için kullanılır. Bu işlev yalnızca bir bağımsız değişken içerir ve dosyanın dosya işleyici nesnesi, verilerin alınacağı bağımsız değişken değeri olarak geçer.



Sözdizimi:





yük(dosya_nesnesi)

Bir dosyada saklamak için basit bir Nesneyi seçin

adlı bir dosya oluşturun pickle1.py aşağıdaki python betiği ile. Aşağıdaki komut dosyasında, adlı bir veri nesnesi verinesnesi for döngüsünü yineleyerek beş dil adını sakladığı bildirildi. Daha sonra, adlı bir ikili dosya oluşturmak için bir dosya işleyicisi atamak için open() yöntemi kullanılır. Diller. çöplük() işlevi burada verileri seri hale getirmek için kullanılır. verinesnesi ve içinde saklayın Diller dosya. Serileştirme düzgün bir şekilde yapılacaksa, Veri serileştirildi, bir mesaj yazdırılır.

# Turşu modülünü içe aktarın
içe aktarmak turşu

# Veriyi depolayacak nesneyi bildirin
verinesnesi= []

# for döngüsünü 5 kez yineleyin ve dil adlarını alın
içinniçinde Aralık(5):
çiğ= giriş('Bir dil adı girin:')

dataObject.eklemek(çiğ)

# Veri yazmak için bir dosya açın
dosya_işleyicisi= açık('Diller', 'wb')

# Nesnenin verilerini dosyaya boşaltın
turşu.çöplük(verinesnesi,dosya_işleyicisi)

# kaynakları serbest bırakmak için dosya işleyiciyi kapatın
dosya_işleyicisi.kapat()

# Mesajı yazdır
Yazdır('Veriler serileştirildi')

Çıktı:



Komut dosyasını çalıştırdıktan sonra, girdi olarak beş dil adı alacaktır.

Bir dosyadaki verileri kaldırma

verilerin dekapajının kaldırılması, verilerin dekapaj işleminin tersidir. adlı bir dosya oluşturun pickle2.py aşağıdaki python betiği ile. Buraya, açık() adlı ikili dosyayı açmak için yöntem kullanılır. Diller , önceki örnekte oluşturuldu. yük() işlevi, verileri dosyadan çıkarmak ve değişkende saklamak için kullanılır. verinesnesi . Sonraki, için döngü kullanılır, verileri yineler verinesnesi ve terminalde yazdırın.

# Turşu modülünü içe aktarın
içe aktarmak turşu

# Verilerin yükleneceği yerden bir dosyayı okumak için bir dosya işleyici açın
dosya_işleyicisi= açık('Diller', 'rb')

# Serileştirmeden sonra verileri dosyadan yükleyin
verinesnesi= turşu.yük(dosya_işleyicisi)

# Dosya işleyiciyi kapatın
dosya_işleyicisi.kapat()

# Mesajı yazdır
Yazdır('Serileştirmeden sonraki veriler')

# Serileştirmeden sonra verileri yazdırmak için döngüyü yineleyin
içinsaatiçindedataObject:
Yazdır('Veri değeri:',saat)

Çıktı:

Komut dosyasını çalıştırdıktan sonra aşağıdaki çıktı görünecektir.

Bir dosyaya bir Sınıf Nesnesi seçin

Bir sınıf nesnesinin nasıl seçilebileceği aşağıdaki örnekte gösterilmiştir. adlı bir dosya oluşturun pickle3.py aşağıdaki komut dosyası ile. Buraya, Çalışan class, bir çalışanın üç veri değerini atamak için bildirildi. Ardından, adlı bir dosya işleyici nesnesi dosya işleyicisi yazmak için bir dosya açmak için oluşturulur. Sınıf nesnesini başlattıktan sonra, veriler kullanılarak serileştirilir. çöplük() işlev ve adlı dosyada saklanır çalışanVeri . Dosya düzgün bir şekilde oluşturulacaksa, mesaj, Veriler serileştirildi yazdıracak.

# Turşu modülünü içe aktar
içe aktarmak turşu

# Değeri depolamak için çalışan sınıfını bildirin
sınıfÇalışan:
tanım __içinde__(öz,isim, e-posta,İleti):
öz.isim =isim
öz.e-posta = e-posta
öz.İleti =İleti

#Çalışan nesnesi oluştur
emnesne=Çalışan('Farheen', ' [e-posta korumalı]', 'Yönetici')

# Depo verileri için dosyayı aç
dosya işleyicisi= açık('çalışan verileri', 'wb')

# Verileri dosyaya kaydedin
turşu.çöplük(emnesne,dosya işleyicisi)

# Dosyayı kapatın
dosya İşleyicisi.kapat()

# Mesajı yazdır
Yazdır('Veriler serileştirildi')

Çıktı:

Komut dosyasını çalıştırdıktan sonra aşağıdaki çıktı görünecektir.

Verileri bir Sınıf Nesnesine ayırma

Gerekli özelliklere ve yöntemlere sahip bir sınıfın, verileri bir dosyadan bir sınıf nesnesine almak için bildirmesi gerekir. adlı bir dosya oluşturun pickle4.py aşağıdaki kod ile. Çalışan sınıf, verileri almak için burada tanımlanır. dosyanesnesi dosyayı açmak için değişken kullanılır, çalışanVeri okumak için. Sonraki, yük() işlevi, seri durumdan çıkarma işleminden sonra verileri sınıf nesnesinde depolamak için kullanılır. Görüntüle() işlevi Çalışan class nesnesinin veri değerlerini yazdırmak için class çağrılır.

# Turşu modülünü içe aktar
içe aktarmak turşu

# Bir dosyadan veri okumak ve yazdırmak için çalışan sınıfını bildirin
sınıfÇalışan:
tanım __içinde__(öz,isim, e-posta,İleti):
öz.isim =isim
öz.e-posta = e-posta
öz.İleti =İleti

tanımGörüntüle(öz):
Yazdır('Çalışan bilgileri:')
Yazdır('İsim :', öz.isim)
Yazdır('E-posta:', öz.e-posta)
Yazdır('Postalamak :', öz.İleti)

# Dosyayı okumak için açın
dosyanesnesi= açık('çalışan verileri', 'rb')

# Verileri kaldır
çalışan= turşu.yük(dosyanesnesi)

# Dosyayı kapat
dosyanesnesi.kapat()

#veri çerçevesini yazdır
çalışan.Görüntüle()

Çıktı:

Komut dosyasını çalıştırdıktan sonra aşağıdaki çıktı görünecektir.

Çözüm

Pickle modülü, veri serileştirme ve seri durumdan çıkarma için python'un kullanışlı bir özelliğidir. Bu öğreticide gösterilen örnekleri tamamladıktan sonra, bir python betiğinden başka bir python betiğine veri aktarımı herkes için daha kolay olacaktır.