Πώς να μαγειρέψετε αντικείμενα στην Python

How Pickle Objects Python



Οποιαδήποτε δεδομένα μπορούν να σειριοποιηθούν και να απενεργοποιηθούν σε Python χρησιμοποιώντας τη μονάδα JSON και Pickle. Πριν από την αποθήκευση οποιωνδήποτε δεδομένων σε ένα αρχείο, τα αντικείμενα Python σειριοποιούνται χρησιμοποιώντας τη μονάδα τουρσί. Τα αντικείμενα Python μετατρέπονται σε ροές χαρακτήρων χρησιμοποιώντας αυτήν την ενότητα. Όταν ο χρήστης θέλει να ανακτήσει τα δεδομένα του αρχείου για χρήση άλλης δέσμης ενεργειών python, τότε τα δεδομένα του αρχείου αποκεντρώνεται με μονάδα τουρσί. Τα χαρακτηριστικά της μονάδας τουρσί και πώς αυτή η ενότητα μπορεί να χρησιμοποιηθεί σε σενάριο python για σειριοποίηση και αποστείρωση περιγράφονται σε αυτό το σεμινάριο.

Χαρακτηριστικά τουρσί:

  • Έχει σχεδιαστεί κυρίως για χρήση σε Python script.
  • Χρησιμοποιείται για την αποθήκευση των αντικειμένων python μεταξύ των διεργασιών.
  • Παρακολουθεί όλα τα σειριακά αντικείμενα και το αντικείμενο που έχει σειριαστεί πριν δεν θα σειριοποιηθεί ξανά.
  • Μπορεί να αποθηκεύσει και να επαναφέρει την παρουσία κλάσης με διαφάνεια.
  • Δεν είναι ασφαλές για χρήση. Επομένως, δεν είναι καλύτερο να ξεκολλήσετε δεδομένα από άγνωστη πηγή.

dump () για σειριοποίηση:

Η συνάρτηση dump () χρησιμοποιείται για τη μετατροπή των δεδομένων αντικειμένου σε ροή χαρακτήρων πριν από την αποθήκευση σε ένα αρχείο. Αυτή η συνάρτηση μπορεί να πάρει τρία ορίσματα. Τα δύο πρώτα ορίσματα είναι υποχρεωτικά και το τελευταίο όρισμα είναι προαιρετικό. Το πρώτο όρισμα λαμβάνει ένα αντικείμενο δεδομένων που πρέπει να σειριοποιηθεί. Το δεύτερο όρισμα παίρνει το αντικείμενο χειρισμού αρχείων αυτού του αρχείου όπου θα αποθηκευτούν τα συλλεγμένα δεδομένα. Το τελευταίο όρισμα παίρνει το όνομα του πρωτοκόλλου.







Σύνταξη:



εγκαταλείπω(data_object,file_object, [πρωτόκολλο])

φορτίο () για αποστείρωση:

Η λειτουργία load () χρησιμοποιείται για τη μετατροπή δεδομένων ροής χαρακτήρων από το αρχείο σε αντικείμενο Python. Αυτή η συνάρτηση περιέχει μόνο ένα όρισμα και το αντικείμενο χειρισμού αρχείων του αρχείου περνά ως τιμή ορίσματος από όπου θα ανακτηθούν τα δεδομένα.



Σύνταξη:





φορτώνω(file_object)

Τουρσί ένα απλό αντικείμενο για αποθήκευση σε ένα αρχείο

Δημιουργήστε ένα αρχείο με όνομα pickle1.py με την ακόλουθη γραφή python. Στο παρακάτω σενάριο, ένα όνομα αντικειμένου δεδομένων dataObject δηλώνεται ότι αποθηκεύει πέντε ονόματα γλωσσών επαναλαμβάνοντας τον βρόχο for. Στη συνέχεια, χρησιμοποιείται η μέθοδος open () για να εκχωρήσει ένας χειριστής αρχείων για τη δημιουργία ενός δυαδικού αρχείου με όνομα Γλώσσες. εγκαταλείπω() η συνάρτηση χρησιμοποιείται εδώ για να σειριοποιήσει τα δεδομένα του dataObject και αποθηκεύστε το στο Γλώσσες αρχείο. Εάν η σειριοποίηση γίνει σωστά, τότε θα εκτυπωθεί ένα μήνυμα, τα δεδομένα είναι σειριοποιημένα.

# Εισαγάγετε τη μονάδα τουρσί
εισαγωγή πίκλα

# Δηλώστε το αντικείμενο για αποθήκευση δεδομένων
dataObject= []

# Επαναλάβετε το βρόχο for για 5 φορές και πάρτε ονόματα γλώσσας
Γιανσε εύρος(5):
ακατέργαστος= εισαγωγή('Εισαγάγετε ένα όνομα γλώσσας:')

dataObject.προσαρτώ(ακατέργαστος)

# Ανοίξτε ένα αρχείο για εγγραφή δεδομένων
χειριστής αρχείων= Άνοιξε('Γλώσσες', 'wb')

# Απορρίψτε τα δεδομένα του αντικειμένου στο αρχείο
πίκλαΤοεγκαταλείπω(dataObject,χειριστής αρχείων)

# κλείστε το πρόγραμμα διαχείρισης αρχείων για να απελευθερώσετε τους πόρους
χειριστής αρχείων.Κλείσε()

# Εκτύπωση μηνύματος
Τυπώνω('Τα δεδομένα είναι σειριακά')

Παραγωγή:



Μετά την εκτέλεση του σεναρίου, θα λάβει πέντε ονόματα γλωσσών ως είσοδο.

Απελευθερώστε δεδομένα από ένα αρχείο

το ξεσκαρτάρισμα των δεδομένων είναι το αντίθετο από τα δεδομένα αποθήκευσης. Δημιουργήστε ένα αρχείο με όνομα pickle2.py με την ακόλουθη γραφή python. Εδώ, Άνοιξε() Η μέθοδος χρησιμοποιείται για να ανοίξει το δυαδικό αρχείο με το όνομα Γλώσσες , που δημιουργήθηκε στο προηγούμενο παράδειγμα. φορτώνω() Η συνάρτηση χρησιμοποιείται για να ξεκολλήσει τα δεδομένα από το αρχείο και να τα αποθηκεύσει στη μεταβλητή dataObject Το Επόμενο, Για ο βρόχος χρησιμοποιείται για να επαναλάβει τα δεδομένα από το dataObject και εκτυπώστε στο τερματικό.

# Εισαγάγετε τη μονάδα τουρσί
εισαγωγή πίκλα

# Ανοίξτε ένα πρόγραμμα διαχείρισης αρχείων για ανάγνωση ενός αρχείου από όπου θα φορτωθούν τα δεδομένα
χειριστής αρχείων= Άνοιξε('Γλώσσες', 'rb')

# Φορτώστε τα δεδομένα από το αρχείο μετά την αποστείρωση
dataObject= πίκλαΤοφορτώνω(χειριστής αρχείων)

# Κλείστε το πρόγραμμα διαχείρισης αρχείων
χειριστής αρχείων.Κλείσε()

# Εκτύπωση μηνύματος
Τυπώνω(«Δεδομένα μετά την αποστείρωση»)

# Επαναλάβετε το βρόχο για να εκτυπώσετε τα δεδομένα μετά την αποστείρωση
ΓιαωρεςσεdataObject:
Τυπώνω('Η τιμή δεδομένων:',ωρες)

Παραγωγή:

Η ακόλουθη έξοδος θα εμφανιστεί μετά την εκτέλεση του σεναρίου.

Αγγίξτε ένα αντικείμενο κλάσης σε ένα αρχείο

Το πώς μπορεί να μαγειρευτεί ένα αντικείμενο κλάσης φαίνεται στο ακόλουθο παράδειγμα. Δημιουργήστε ένα αρχείο με όνομα pickle3.py με το παρακάτω σενάριο. Εδώ, Υπάλληλος η κλάση δηλώνει ότι εκχωρεί τρεις τιμές δεδομένων ενός υπαλλήλου. Στη συνέχεια, ένα αντικείμενο χειρισμού αρχείων με όνομα fileHandler δημιουργείται για να ανοίξει ένα αρχείο για εγγραφή. Μετά την προετοιμασία του αντικειμένου κλάσης, τα δεδομένα σειριοποιούνται χρησιμοποιώντας εγκαταλείπω() λειτουργία και αποθηκεύεται στο όνομα του αρχείου εργαζομεναΔεδομενα Το Εάν το αρχείο δημιουργηθεί σωστά, τότε το μήνυμα, Τα δεδομένα είναι σειριακά θα εκτυπώσει.

# Εισαγωγή μονάδας τουρσί
εισαγωγή πίκλα

# Δηλώστε την κατηγορία εργαζομένων για αποθήκευση της αξίας
τάξηΥπάλληλος:
def __μέσα σε αυτό__(εαυτός,όνομα, ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ,Θέση):
εαυτόςΤοόνομα =όνομα
εαυτόςΤοΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ = ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ
εαυτόςΤοΘέση =Θέση

#Δημιουργία αντικειμένου υπαλλήλου
empObject=Υπάλληλος('Farheen', '[email protected]', 'Διευθυντής')

# Άνοιγμα αρχείου για δεδομένα αποθήκευσης
fileHandler= Άνοιξε('EmploData', 'wb')

# Αποθηκεύστε τα δεδομένα στο αρχείο
πίκλαΤοεγκαταλείπω(empObject,fileHandler)

# Κλείστε το αρχείο
fileHandler.Κλείσε()

# Εκτύπωση μηνύματος
Τυπώνω('Τα δεδομένα είναι σειριακά')

Παραγωγή:

Η ακόλουθη έξοδος θα εμφανιστεί μετά την εκτέλεση του σεναρίου.

Αποδέσμευση δεδομένων σε αντικείμενο κλάσης

Μια κλάση με τις απαραίτητες ιδιότητες και μεθόδους θα πρέπει να δηλώσει για ανάκτηση των δεδομένων από ένα αρχείο σε ένα αντικείμενο κλάσης. Δημιουργήστε ένα αρχείο με όνομα pickle4.py με τον ακόλουθο κωδικό. Υπάλληλος η κατηγορία ορίζεται εδώ για την ανάκτηση των δεδομένων. fileObject η μεταβλητή χρησιμοποιείται για να ανοίξει το αρχείο, εργαζομεναΔεδομενα για διάβασμα. Επόμενο, φορτώνω() Η συνάρτηση χρησιμοποιείται για την αποθήκευση των δεδομένων στο αντικείμενο της κλάσης μετά την αποστείρωση. απεικόνιση() λειτουργία του Υπάλληλος η κλάση καλείται να εκτυπώσει τις τιμές δεδομένων του αντικειμένου κλάσης.

# Εισαγωγή μονάδας τουρσί
εισαγωγή πίκλα

# Δηλώστε την τάξη των εργαζομένων για ανάγνωση και εκτύπωση δεδομένων από ένα αρχείο
τάξηΥπάλληλος:
def __μέσα σε αυτό__(εαυτός,όνομα, ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ,Θέση):
εαυτόςΤοόνομα =όνομα
εαυτόςΤοΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ = ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ
εαυτόςΤοΘέση =Θέση

defαπεικόνιση(εαυτός):
Τυπώνω(«Πληροφορίες υπαλλήλων:»)
Τυπώνω('Ονομα :', εαυτόςΤοόνομα)
Τυπώνω('ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ :', εαυτόςΤοΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ)
Τυπώνω('Θέση :', εαυτόςΤοΘέση)

# Ανοίξτε το αρχείο για ανάγνωση
fileObject= Άνοιξε('EmploData', 'rb')

# Απελευθερώστε τα δεδομένα
υπάλληλος= πίκλαΤοφορτώνω(fileObject)

# Κλείσιμο αρχείου
fileObject.Κλείσε()

#εκτυπώστε το πλαίσιο δεδομένων
υπάλληλος.απεικόνιση()

Παραγωγή:

Η ακόλουθη έξοδος θα εμφανιστεί μετά την εκτέλεση του σεναρίου.

συμπέρασμα

Η μονάδα τουρσί είναι ένα χρήσιμο χαρακτηριστικό της python για σειριοποίηση δεδομένων και αποστείρωση δεδομένων. Μετά την ολοκλήρωση των παραδειγμάτων που εμφανίζονται σε αυτό το σεμινάριο, η μεταφορά δεδομένων από ένα σενάριο python σε άλλο σενάριο python θα είναι ευκολότερη για οποιονδήποτε.