Πώς να χρησιμοποιήσετε το Pickle για να αποθηκεύσετε αντικείμενα στην Python

click fraud protection

Το Pickle, το οποίο αποτελεί μέρος της βιβλιοθήκης Python από προεπιλογή, είναι μια σημαντική ενότητα κάθε φορά που χρειάζεστε εμμονή μεταξύ των περιόδων σύνδεσης των χρηστών. Ως μονάδα, το pickle προβλέπει την αποθήκευση αντικειμένων της Python μεταξύ των διαδικασιών.

Είτε προγραμματίζετε ένα βάση δεδομένων, το παιχνίδι, το φόρουμ ή κάποια άλλη εφαρμογή που πρέπει να αποθηκεύει πληροφορίες μεταξύ περιόδων σύνδεσης, το pickle είναι χρήσιμο για την αποθήκευση αναγνωριστικών και ρυθμίσεων. Το module pickle μπορεί να αποθηκεύσει πράγματα όπως τύποι δεδομένων όπως booleans, string και byte arrays, λίστες, λεξικά, λειτουργίες και πολλά άλλα.

Σημείωση: Η έννοια της αποσκωρίωσης είναι επίσης γνωστή ως serialization, marshaling, και flattening. Ωστόσο, το σημείο είναι πάντα το ίδιο - για να αποθηκεύσετε ένα αντικείμενο σε ένα αρχείο για μεταγενέστερη ανάκτηση. Το pickup επιτυγχάνει αυτό γράφοντας το αντικείμενο ως ένα μεγάλο ρεύμα bytes.

Pickle Παράδειγμα κώδικα σε Python

Για να γράψετε ένα αντικείμενο σε ένα αρχείο, χρησιμοποιείτε έναν κώδικα στην ακόλουθη σύνταξη:

instagram viewer
μαρμελάδα εισαγωγής 
αντικείμενο = Αντικείμενο ()
filehandler = ανοικτό (όνομα αρχείου, 'w')
pickle.dump (αντικείμενο, filehandler)

Ακολουθεί το παράδειγμα ενός πραγματικού κόσμου:

μαρμελάδα εισαγωγής 
εισαγωγή μαθηματικών
object_pi = math.pi
file_pi = ανοιχτό ('όνομα_αρχείου_αρχείου', 'w')
pickle.dump (object_pi, file_pi)

Αυτό το απόσπασμα γράφει τα περιεχόμενα του object_pi στο αρχείο χειριστής file_pi, η οποία με τη σειρά της δεσμεύεται από τον φάκελο filename_pi.obj στον κατάλογο εκτέλεσης.

Για να επαναφέρετε την τιμή του αντικειμένου στη μνήμη, φορτώστε το αντικείμενο από το αρχείο. Αν υποθέσουμε ότι το μπισκότο δεν έχει εισαχθεί για χρήση, ξεκινήστε με την εισαγωγή του:

μαρμελάδα εισαγωγής 
filehandler = ανοιχτό (όνομα αρχείου, 'r')
αντικείμενο = pickle.load (filehandler)

Ο παρακάτω κώδικας αποκαθιστά την τιμή του pi:

μαρμελάδα εισαγωγής 
file_pi2 = ανοιχτό ('όνομα_αρχείου', 'r')
object_pi2 = pickle.load (file_pi2)

Το αντικείμενο είναι στη συνέχεια έτοιμο για χρήση και πάλι, αυτή τη φορά ως object_pi2. Μπορείτε, βεβαίως, να επαναχρησιμοποιήσετε τα αρχικά ονόματα, αν προτιμάτε. Αυτό το παράδειγμα χρησιμοποιεί διακριτά ονόματα για λόγους σαφήνειας.

Πράγματα που πρέπει να θυμάστε για το Pickle

Κρατήστε αυτά τα πράγματα κατά τη χρήση του module pickle:

  • Το πρωτόκολλο pickle είναι συγκεκριμένο για την Python - δεν είναι εγγυημένο ότι είναι συμβατό με πολλές γλώσσες. Πιθανότατα δεν μπορείτε να μεταφέρετε τις πληροφορίες ώστε να είναι χρήσιμες σε Perl, PHP, Java ή άλλες γλώσσες.
  • Δεν υπάρχει επίσης εγγύηση συμβατότητας μεταξύ των διαφόρων εκδόσεων της Python. Αυτή η ασυμβατότητα υπάρχει επειδή δεν είναι δυνατή η σειριοποίηση κάθε δομής δεδομένων Python από την ενότητα.
  • Από προεπιλογή χρησιμοποιείται η τελευταία έκδοση του πρωτοκόλλου pickle. Παραμένει έτσι, εκτός αν το αλλάξετε χειροκίνητα.

Υπόδειξη: Επίσης, μάθετε πώς να χρησιμοποιήσετε το ράφι για να αποθηκεύσετε αντικείμενα στη Python για μια άλλη μέθοδο διατήρησης της συνέχειας του αντικειμένου.

instagram story viewer