Αποθηκεύστε μια εντολή σε ένα αρχείο

Save Dict File



Το λεξικό είναι ένα πολύ διάσημο αντικείμενο στον python. Και είναι μια συλλογή κλειδιών και αξιών. Το κλειδί της εντολής πρέπει να είναι αμετάβλητο και μπορεί να είναι ακέραιος, να επιπλέει, να συμβολοσειρά, αλλά ούτε μια λίστα ούτε μια ίδια η εντολή δεν μπορούν να είναι κλειδί. Έτσι, μερικές φορές πρέπει να αποθηκεύσουμε τα αντικείμενα dict σε ένα αρχείο. Έτσι θα δούμε διαφορετικές μεθόδους για την αποθήκευση ενός αντικειμένου dict σε ένα αρχείο.

Μπορούμε να γράψουμε το λεξικό σε ένα αρχείο στην Python με διάφορους τρόπους όπως:







  1. Αρχείο τιμής διαχωρισμένο με κόμμα (.csv)
  2. Αρχείο Json (.json)
  3. Αρχείο κειμένου (.txt)
  4. Αρχείο τουρσί (.pkl)

Θα εξηγήσουμε όλες τις παραπάνω μεθόδους.



Μέθοδος 1: Αποθήκευση λεξικού σε μορφή CSV

Για να αποθηκεύσετε το λεξικό στο CSV (Τιμές διαχωρισμένες με κόμμα), χρησιμοποιούμε την ενότητα CSV. Οι τιμές που διαχωρίζονται με κόμματα για να αποθηκευτεί η επιφύλαξη python είναι η πιο κοινή και διάσημη μέθοδος. Οι περισσότεροι προγραμματιστές χρησιμοποιούν αυτήν τη μέθοδο μόνο για να αποθηκεύσουν το dict σε ένα αρχείο. Η αποθήκευση του λεξικού σε ένα αρχείο ως CSV είναι πολύ εύκολη καθώς πρέπει να μεταφέρουμε τα δεδομένα ως συμβολοσειρά.



Παράδειγμα_1: dict_to_csv.py





# dict_to_csv.py
εισαγωγή csv

dict_sample= {'όνομα':'LinuxHint', 'πόλη':'ΟΤΙ', 'εκπαίδευση':'Μηχανική'}

με Άνοιξε('data.csv', 'σε') όπως καιφά:
Γιακλειδίσεdict_sample.κλειδιά():
φά.γράφω('% s,% s n'%(κλειδί,dict_sample[κλειδί]))

Γραμμή 2 : Εισάγουμε το CSV module python.

Γραμμή 4 : Δημιουργήσαμε ένα δείγμα δεδομένων dict. Θα προσπαθήσουμε να το αποθηκεύσουμε με τη μορφή αρχείου CSV.



Γραμμή 6: Χρησιμοποιούμε εδώ τη δήλωση «με» για να γράψουμε το αρχείο CSV. Η δήλωση «με» χειρίζεται τον χειρισμό της εξαίρεσης αυτόματα κατά την ανάγνωση ή εγγραφή ενός αρχείου. Ανοίγουμε το αρχείο data.csv στη λειτουργία εγγραφής και εκχωρούμε αυτό το αντικείμενο στη μεταβλητή f.

Γραμμή 7 , Εκτελούμε έναν βρόχο for που εξάγει το κλειδί και στην επόμενη γραμμή, γράφει το κλειδί και την τιμή_κλειδί σε ένα αρχείο CSV. Αυτός ο βρόχος θα τρέξει μέχρι να υπάρχουν δεδομένα.

Έξοδος: data.csv

όνομα,LinuxHint
πόλη,ΟΤΙ
εκπαίδευση,Μηχανική

Έτσι, τα παραπάνω δείχνουν το αρχείο εξόδου μετά την εγγραφή στο data.csv.

Τώρα, καταλαβαίνουμε πώς να αποθηκεύσετε την εντολή σε ένα αρχείο με τη μορφή CSV. Ας δοκιμάσουμε με ένα άλλο παράδειγμα όπου θέλουμε να γράψουμε μια λίστα αντικειμένων dict στο αρχείο CSV.

Παράδειγμα_2: dict_to_csv_2.py

# dict_to_csv_2.py

εισαγωγή csv

csvΣτήλες= ['Πόλη', 'Χώρα', 'Τάξη']
dictDemo= [
{'Πόλη':'Νέα Υόρκη', 'Χώρα':'ΧΡΗΣΕΙΣ', 'Τάξη':3},
{'Πόλη':'Σίδνεϊ', 'Χώρα':'Αυστραλία', 'Τάξη':5},
{'Πόλη':'Ντουμπάι', 'Χώρα':«ΗΑΕ», 'Τάξη':10},
{'Πόλη':'Βομβάη', 'Χώρα':'Ινδία', 'Τάξη':17},
{'Πόλη':«Πεκίνο», 'Χώρα':'Κίνα', 'Τάξη':7},
]
csvFileName= 'data.csv'
προσπαθήστε:
με Άνοιξε(csvFileName, 'σε') όπως καιφά:
συγγραφέας= csvΤοDictWriter(φά,ονόματα πεδίων=csvΣτήλες)
συγγραφέας.κεφαλογράφος()
ΓιαδεδομένασεdictDemo:
συγγραφέας.συγγραφέας(δεδομένα)
εκτός IOError:
Τυπώνω('Παρουσιάστηκε σφάλμα')

Γραμμή 3 έως 12: Εισάγουμε την ενότητα python CSV και δημιουργούμε μια λίστα με αντικείμενα dict. Δημιουργήσαμε επίσης μια λίστα με ονόματα στηλών.

Γραμμή 13: Εκχωρήσαμε το όνομα αρχείου CSV σε μια μεταβλητή.

Γραμμή 15: Χρησιμοποιούμε τη δήλωση «με» και η δήλωση εκχωρεί το αντικείμενο επιστροφής της μεθόδου __enter__ στη μεταβλητή f.

Γραμμή 16 έως 19: Αφού εκχωρήσαμε το αντικείμενο επιστροφής στη μεταβλητή f, καλέσαμε μια μέθοδο DictWriter της ενότητας CSV και περάσαμε δύο παραμέτρους (όνομα αρχείου (f) και ονόματα στηλών). Στη συνέχεια, καλούμε μια άλλη μέθοδο writeheader () που θα γράψει την πρώτη σειρά του αρχείου CSV, η οποία είναι γενικά το όνομα των πεδίων. Στη συνέχεια εκτελούμε έναν βρόχο for στη λίστα των αντικειμένων dict και γράφουμε ένα προς ένα στο αρχείο CSV χρησιμοποιώντας τη μέθοδο Writerow ().

Μέθοδος 2: Αποθηκεύστε την εντολή σε αρχείο κειμένου σε μορφή JSON (λειτουργία προσάρτησης)

Μπορούμε επίσης να αποθηκεύσουμε τα αντικείμενα dict με τη μορφή του JSON σε ένα αρχείο. Ο παρακάτω κώδικας εξηγεί το ίδιο. Αυτός ο κώδικας εξηγεί επίσης πώς μπορούμε να προσθέσουμε νέο JSON σε μια υπάρχουσα λίστα JSON.

Παράδειγμα : dict_to_file_asJSON.py

#dict_to_file_asJSON.py

εισαγωγήjson

dictDemo= [
{'Πόλη':'Νέα Υόρκη', 'Χώρα':'ΧΡΗΣΕΙΣ', 'Τάξη':3},
{'Πόλη':'Σίδνεϊ', 'Χώρα':'Αυστραλία', 'Τάξη':5},
{'Πόλη':'Ντουμπάι', 'Χώρα':«ΗΑΕ», 'Τάξη':10},
{'Πόλη':'Βομβάη', 'Χώρα':'Ινδία', 'Τάξη':17},
{'Πόλη':«Πεκίνο», 'Χώρα':'Κίνα', 'Τάξη':7},
]

όνομα αρχείου= 'dict.json'

# Γράφοντας τη λίστα των αντικειμένων dict σε ένα αρχείο
με Άνοιξε(όνομα αρχείου,τρόπος='σε') όπως καιφά:
json.εγκαταλείπω(dictDemo,φά)

# Γράφοντας ένα νέο αντικείμενο dict σε ένα αρχείο ως προσάρτημα και αντικατάσταση ολόκληρου του αρχείου
με Άνοιξε(όνομα αρχείου,τρόπος='σε') όπως καιφά:
dictDemo.προσαρτώ({'Πόλη':«Πεκίνο», 'Χώρα':'Κίνα'})
json.εγκαταλείπω(dictDemo,φά)

Παραγωγή : dict.json

[{'Πόλη':'Νέα Υόρκη', 'Χώρα':'ΧΡΗΣΕΙΣ', 'Τάξη':3},
{'Πόλη':'Σίδνεϊ', 'Χώρα':'Αυστραλία', 'Τάξη':5},
{'Πόλη':'Ντουμπάι', 'Χώρα':«ΗΑΕ», 'Τάξη':10},
{'Πόλη':'Βομβάη', 'Χώρα':'Ινδία', 'Τάξη':17},
{'Πόλη':«Πεκίνο», 'Χώρα':'Κίνα', 'Τάξη':7},
{'Πόλη':«Πεκίνο», 'Χώρα':'Κίνα'}
]

Γραμμή 1 έως 13 : Εισάγουμε τη μονάδα JSON. Στη συνέχεια, δημιουργούμε μια λίστα αντικειμένων για το demo. Στη συνέχεια, εκχωρήσαμε το όνομα του αρχείου JSON σε ένα μεταβλητό όνομα αρχείου.

Γραμμή 15 έως 17 : Χρησιμοποιούμε τη δήλωση «με» για να ανοίξουμε το αρχείο JSON για εγγραφή και στη συνέχεια χρησιμοποιούμε τη μέθοδο json.dump για να μετατρέψουμε τα αντικείμενα dict σε JSON και στη συνέχεια να γράψουμε στο αρχείο.

Γραμμή 20 έως 22: Αυτές οι γραμμές είναι πολύ σημαντικές γιατί τι θα συμβεί; Αν προσπαθήσουμε να προσθέσουμε νέα αντικείμενα JSON στα ήδη γραμμένα αρχεία. Τα προηγούμενα δεδομένα θα χαθούν λόγω της αντικατάστασης. Στη συνέχεια, μπορούμε να χρησιμοποιήσουμε το προηγούμενο όνομα λίστας dict όπως κάναμε (dictDemo) και, στη συνέχεια, προσθέτουμε το νέο αντικείμενο σε αυτό. Και τελικά, μετατρέπουμε ολόκληρο το αρχείο σε JSON και αντικαθιστούμε ολόκληρο το αρχείο.

Στην έξοδο, μπορούμε να δούμε ότι ένα νέο αντικείμενο JSON προστίθεται σε μια υπάρχουσα λίστα JSON.

Μέθοδος 3: Αποθηκεύστε τα αντικείμενα του λεξικού σε ένα αρχείο σε μορφή txt

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

Παράδειγμα: dict_to_txt.py

#dict_to_txt.py

dictDemo= [
{'Πόλη':'Νέα Υόρκη', 'Χώρα':'ΧΡΗΣΕΙΣ', 'Τάξη':3},
{'Πόλη':'Σίδνεϊ', 'Χώρα':'Αυστραλία', 'Τάξη':5},
{'Πόλη':'Ντουμπάι', 'Χώρα':«ΗΑΕ», 'Τάξη':10},
{'Πόλη':'Βομβάη', 'Χώρα':'Ινδία', 'Τάξη':17},
{'Πόλη':«Πεκίνο», 'Χώρα':'Κίνα', 'Τάξη':7},
]

όνομα αρχείου= 'dict.txt'

# Γράφοντας τη λίστα των αντικειμένων dict σε ένα αρχείο
με Άνοιξε(όνομα αρχείου,τρόπος='σε') όπως καιφά:
φά.γράφω(Π(dictDemo))

Παραγωγή: dict.txt

[{'Πόλη':'Νέα Υόρκη', 'Χώρα':'ΧΡΗΣΕΙΣ', 'Τάξη':3},
{'Πόλη':'Σίδνεϊ', 'Χώρα':'Αυστραλία', 'Τάξη':5},
{'Πόλη':'Ντουμπάι', 'Χώρα':«ΗΑΕ», 'Τάξη':10},
{'Πόλη':'Βομβάη', 'Χώρα':'Ινδία', 'Τάξη':17},
{'Πόλη':«Πεκίνο», 'Χώρα':'Κίνα', 'Τάξη':7}]

Γραμμή 1 έως 11 : Δημιουργήσαμε μια λίστα αντικειμένων λεξικού και εκχωρήσαμε το όνομα του αρχείου dict.txt σε ένα μεταβλητό όνομα αρχείου.

Γραμμή 14 έως 15 : Χρησιμοποιούμε εδώ τη δήλωση «με», η οποία χειρίζεται αυτόματα την εξαίρεση. Και γράφουμε τη λίστα αντικειμένων dict ως συμβολοσειρά σε ένα αρχείο.

Παράδειγμα: dict_to_txt_2.py

Έχουμε δει πώς να αποθηκεύσετε τα αντικείμενα dict σε ένα αρχείο σε μορφή .txt. Αλλά στον παραπάνω κώδικα, υπάρχει ένα πρόβλημα με την προσθήκη ενός νέου αντικειμένου. Έτσι, αλλάζουμε τη μέθοδο προσάρτησης από ‘w’ σε ‘a’, η οποία μπορεί να λύσει το πρόβλημά μας όπως φαίνεται παρακάτω στον κώδικα.

#dict_to_txt_2.py

'' ': cvar
Αυτός ο κώδικας θα αποθηκεύσει τα αντικείμενα dict στο αρχείο με το
προσθήκη λειτουργίας.
'' ''

dictDemo= [
{'Πόλη':'Νέα Υόρκη', 'Χώρα':'ΧΡΗΣΕΙΣ', 'Τάξη':3},
{'Πόλη':'Σίδνεϊ', 'Χώρα':'Αυστραλία', 'Τάξη':5},
{'Πόλη':'Ντουμπάι', 'Χώρα':«ΗΑΕ», 'Τάξη':10},
{'Πόλη':'Βομβάη', 'Χώρα':'Ινδία', 'Τάξη':17},
{'Πόλη':«Πεκίνο», 'Χώρα':'Κίνα', 'Τάξη':7},
]

όνομα αρχείου= 'dict_to_file_appendMode.txt'

# Γράφοντας τη λίστα των αντικειμένων dict σε ένα αρχείο
με Άνοιξε(όνομα αρχείου,τρόπος='προς το') όπως καιφά:
φά.γράφω(Π(dictDemo))

Γραμμή 7 έως 15 : Δημιουργήσαμε μια λίστα αντικειμένων λεξικού και εκχωρήσαμε το όνομα του αρχείου dict_to_file_appendMode.txt σε ένα όνομα αρχείου μεταβλητής.

Γραμμή 18 έως 19 : Αλλάζουμε τη λειτουργία = ‘a’ και αυτό θα λύσει το πρόβλημά μας. Η παρακάτω έξοδος δείχνει ότι έχουμε προσθέσει δύο αντικείμενα dict στο ίδιο αρχείο χωρίς να αντικαταστήσουμε τα προηγούμενα δεδομένα.

Έξοδος: dict_to_file_appendMode.txt

[{'Πόλη':'Νέα Υόρκη', 'Χώρα':'ΧΡΗΣΕΙΣ', 'Τάξη':3},
{'Πόλη':'Σίδνεϊ', 'Χώρα':'Αυστραλία', 'Τάξη':5},
{'Πόλη':'Ντουμπάι', 'Χώρα':«ΗΑΕ», 'Τάξη':10},
{'Πόλη':'Βομβάη', 'Χώρα':'Ινδία', 'Τάξη':17},
{'Πόλη':«Πεκίνο», 'Χώρα':'Κίνα', 'Τάξη':7}]

[{'Πόλη':'Νέα Υόρκη', 'Χώρα':'ΧΡΗΣΕΙΣ', 'Τάξη':3},
{'Πόλη':'Σίδνεϊ', 'Χώρα':'Αυστραλία', 'Τάξη':5},
{'Πόλη':'Ντουμπάι', 'Χώρα':«ΗΑΕ», 'Τάξη':10},
{'Πόλη':'Βομβάη', 'Χώρα':'Ινδία', 'Τάξη':17},
{'Πόλη':«Πεκίνο», 'Χώρα':'Κίνα', 'Τάξη':7}]

Μέθοδος 4: Αποθηκεύστε το αντικείμενο dict σε ένα αρχείο χρησιμοποιώντας τη μέθοδο τουρσί.

Μπορούμε επίσης να αποθηκεύσουμε το αντικείμενο dict σε ένα αρχείο χρησιμοποιώντας τη μονάδα τουρσί python. Η μονάδα τουρσί υποστηρίζει πολλά αντικείμενα για σειριοποίηση σε python και υποστηρίζει επίσης αντικείμενα dict.

# dict_to_file_use_pickle.py

εισαγωγή πίκλα

dictDemo= [
{'Πόλη':'Νέα Υόρκη', 'Χώρα':'ΧΡΗΣΕΙΣ', 'Τάξη':3},
{'Πόλη':'Σίδνεϊ', 'Χώρα':'Αυστραλία', 'Τάξη':5},
{'Πόλη':'Ντουμπάι', 'Χώρα':«ΗΑΕ», 'Τάξη':10},
{'Πόλη':'Βομβάη', 'Χώρα':'Ινδία', 'Τάξη':17},
{'Πόλη':«Πεκίνο», 'Χώρα':'Κίνα', 'Τάξη':7},
]

όνομα αρχείου= 'picklefile.pkl'

με Άνοιξε(όνομα αρχείου, 'Μακριά') όπως καιφά:
πίκλαΤοεγκαταλείπω(dictDemo,φά)

Γραμμή 3 έως 13 : Εισάγουμε το τουρσί μονάδας και δημιουργούμε μια λίστα με αντικείμενα dict. Δημιουργούμε επίσης ένα όνομα αρχείου όπου θα αποθηκεύσουμε τα αντικείμενα μας.

Γραμμή 15 έως 16 : Χρησιμοποιούμε εδώ τη δήλωση «με» και ανοίγουμε το αρχείο με λειτουργία προσάρτησης και δυαδική μορφή. Στη συνέχεια, ρίχνουμε τα αντικείμενα dict στο αρχείο.

συμπέρασμα

Έτσι, έχουμε δει διαφορετικές μεθόδους για να αποθηκεύσετε ένα αντικείμενο λεξικού σε ένα αρχείο. Εξαρτάται από τον χρήστη πώς θέλει να αποθηκεύσει το αντικείμενο στο αρχείο. Οι πιο συνηθισμένες μέθοδοι για την αποθήκευση του αντικειμένου dict στο αρχείο είναι JSON και CSV. Οι μορφές JSON και CSV είναι πολύ διάσημες από πλευράς προγραμματισμού ή είναι εύκολες στον χειρισμό σε python. Έχουμε επίσης δει τον τρόπο προσθήκης αποθήκευσης αρχείων.

Μπορείτε να κατεβάσετε τον κώδικα για αυτό το άρθρο από αυτόν τον σύνδεσμο:

https://github.com/shekharpandey89/save-dict-object-to-a-file