Πώς να διαβάσετε δυαδικά αρχεία στην Python

How Read Binary Files Python



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

Προαπαιτούμενο:

Πριν ελέγξετε τα παραδείγματα αυτού του σεμιναρίου, είναι καλύτερο να δημιουργήσετε ένα ή περισσότερα δυαδικά αρχεία για χρήση στο παράδειγμα δέσμης ενεργειών. Το σενάριο δύο αρχείων python έχει δοθεί παρακάτω για τη δημιουργία δύο δυαδικών αρχείων. Το binary1.py θα δημιουργήσει ένα δυαδικό αρχείο με όνομα string.bin που θα περιέχει δεδομένα συμβολοσειράς και το binary2.py θα δημιουργήσει ένα δυαδικό αρχείο με όνομα number_list.bin που θα περιέχει μια λίστα αριθμητικών δεδομένων.







Δυαδικό1.py

# Ανοίξτε ένα πρόγραμμα διαχείρισης αρχείων για να δημιουργήσετε ένα δυαδικό αρχείο

χειριστής αρχείων= Άνοιξε('string.bin', 'wb')

# Προσθέστε δύο γραμμές κειμένου στο δυαδικό αρχείο

χειριστής αρχείων.γράφω(σιΚαλώς ήρθατε στο LinuxHint. nΜάθετε προγραμματισμό Python. ')

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

χειριστής αρχείων.Κλείσε()

Binary2.py

# Ανοίξτε ένα πρόγραμμα διαχείρισης αρχείων για να δημιουργήσετε ένα δυαδικό αρχείο

αρχείο=Άνοιξε('number_list.bin','wb')

# Δηλώστε μια λίστα αριθμητικών τιμών

αριθμούς=[10,30,Τέσσερα πέντε,60,70,85,99]

# Μετατρέψτε τη λίστα σε πίνακα

barray=bytearray(αριθμούς)

# Γράψτε πίνακα στο αρχείο

αρχείοΤογράφω(barray)

αρχείοΤοΚλείσε()

Παράδειγμα-1: Διαβάστε το δυαδικό αρχείο δεδομένων συμβολοσειράς στον πίνακα byte

Υπάρχουν πολλοί τρόποι στην Python για την ανάγνωση του δυαδικού αρχείου. Μπορείτε να διαβάσετε τον συγκεκριμένο αριθμό byte ή το πλήρες περιεχόμενο του δυαδικού αρχείου κάθε φορά. Δημιουργήστε ένα αρχείο python με το ακόλουθο σενάριο. ο συνάρτηση open () έχει χρησιμοποιήσει για να ανοίξει το string.bin για διάβασμα. ο λειτουργία ανάγνωσης () έχει χρησιμοποιηθεί για την ανάγνωση 7 χαρακτήρων από το αρχείο σε κάθε επανάληψη του βρόχου while και εκτύπωση. Στη συνέχεια, το λειτουργία ανάγνωσης () έχει χρησιμοποιηθεί χωρίς κανένα επιχείρημα για την ανάγνωση του πλήρους περιεχομένου του δυαδικού αρχείου που θα εκτυπωθεί αργότερα.



# Ανοίξτε το δυαδικό αρχείο για ανάγνωση

χειριστής αρχείων= Άνοιξε('string.bin', 'rb')

# Διαβάστε τα τρία πρώτα byte από το δυαδικό αρχείο

data_byte=χειριστής αρχείων.ανάγνωση(7)

Τυπώνω('Εκτύπωση τριών χαρακτήρων σε κάθε επανάληψη:')

# Επαναλάβετε το βρόχο για να διαβάσετε το υπόλοιπο μέρος του αρχείου

ενώdata_byte:

Τυπώνω(data_byte)

data_byte=χειριστής αρχείων.ανάγνωση(7)


# Διαβάστε ολόκληρο το αρχείο ως μια συμβολοσειρά byte

με Άνοιξε('string.bin', 'rb') όπως καιfh:

περιεχόμενο=fhανάγνωση()

Τυπώνω('Εκτύπωση ολόκληρου του περιεχομένου του δυαδικού αρχείου:')

Τυπώνω(περιεχόμενο)

Παραγωγή:

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







Παράδειγμα-2: Διαβάστε το δυαδικό αρχείο δεδομένων συμβολοσειράς στον πίνακα

Δημιουργήστε ένα αρχείο python με το ακόλουθο σενάριο για να διαβάσετε ένα δυαδικό αρχείο με όνομα number_list.bin δημιουργήθηκε προηγουμένως. Αυτό το δυαδικό αρχείο περιέχει μια λίστα αριθμητικών δεδομένων. Όπως και στο προηγούμενο παράδειγμα, το συνάρτηση open () έχει χρησιμοποιήσει το ανοιχτό δυαδικό αρχείο για ανάγνωση στο σενάριο. Στη συνέχεια, οι 5 πρώτοι αριθμοί θα διαβαστούν από το δυαδικό αρχείο και θα μετατραπούν σε λίστα πριν από την εκτύπωση.

# Ανοίξτε το δυαδικό αρχείο για ανάγνωση

αρχείο = Άνοιξε('number_list.bin', 'rb')

# Διαβάστε τους πρώτους πέντε αριθμούς σε μια λίστα

αριθμός= λίστα(αρχείοΤοανάγνωση(5))

# Εκτυπώστε τη λίστα

Τυπώνω(αριθμός)

# Κλείστε το αρχείο

αρχείοΤοΚλείσε()

Παραγωγή:

Η ακόλουθη έξοδος θα εμφανιστεί μετά την εκτέλεση του παραπάνω σεναρίου. Το δυαδικό αρχείο περιέχει 7 αριθμούς και οι πέντε πρώτοι αριθμοί έχουν εκτυπωθεί στην έξοδο.



Παράδειγμα-3: Διαβάστε δυαδικό αρχείο χρησιμοποιώντας το NumPy

Οι τρόποι δημιουργίας δυαδικού αρχείου χρησιμοποιώντας το Πίνακας NumPy και διαβάστε το περιεχόμενο του δυαδικού αρχείου χρησιμοποιώντας σε μια λίστα χρησιμοποιώντας το Ενότητα NumPy έχουν δείξει σε αυτό το μέρος του σεμιναρίου. Πριν ελέγξετε το σενάριο που δίνεται παρακάτω, πρέπει να εγκαταστήσετε το Ενότητα NumPy εκτελώντας την εντολή από το τερματικό ή εγκαθιστώντας το Πακέτο NumPy στον επεξεργαστή Python, όπου θα εκτελεστεί το σενάριο. ο συνάρτηση tofile () χρησιμοποιείται για τη δημιουργία κειμένου ή δυαδικού αρχείου, και το συνάρτηση fromfile () χρησιμοποιείται για τη δημιουργία ενός πίνακα διαβάζοντας ένα κείμενο ή δυαδικό αρχείο.

Σύνταξη του tofile ():

ndarray.να αρχειοθετήσω(αρχείο,Σεπ='',μορφή='%μικρό')

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

Σύνταξη του fomfile ():

μουδιασμένοςαπό αρχείο(αρχείο,dtype=φλοτέρ,μετρώ=-1,Σεπ='',αντισταθμίζεται=0,*,σαν=Κανένας)

Το πρώτο όρισμα είναι υποχρεωτικό και παίρνει το όνομα αρχείου ή τη συμβολοσειρά ή τη διαδρομή ως τιμή. Το περιεχόμενο του αρχείου θα διαβαστεί εάν παρέχεται όνομα αρχείου σε αυτό το όρισμα. ο dtype ορίζει τον τύπο δεδομένων του πίνακα που επιστρέφεται. Η καταμέτρηση χρησιμοποιείται για τον υπολογισμό του αριθμού των στοιχείων. Ο σκοπός του Σεπ είναι να διαχωρίσετε τα στοιχεία κειμένου ή πίνακα. Το offset χρησιμοποιείται για τον καθορισμό της τρέχουσας θέσης του αρχείου. Το τελευταίο όρισμα χρησιμοποιείται για τη δημιουργία ενός αντικειμένου πίνακα που δεν είναι α Πίνακας NumPy Το

Δημιουργήστε ένα αρχείο python με το ακόλουθο σενάριο για να δημιουργήσετε ένα δυαδικό αρχείο χρησιμοποιώντας Πίνακας NumPy και διαβάστε και εκτυπώστε το περιεχόμενο του δυαδικού αρχείου.

# Εισαγωγή μονάδας NumPy

εισαγωγήμουδιασμένοςόπως καιπ.χ

# Δήλωση numpy array

nparray=π.χ.πίνακας([3. 4, 89, 30, Τέσσερα πέντε, 90, έντεκα])

# Δημιουργήστε δυαδικό αρχείο από τον αριθμητικό πίνακα

nparray.να αρχειοθετήσω('list.bin')

# Εκτύπωση δεδομένων από το δυαδικό αρχείο

Τυπώνω(π.χ.από αρχείο('list.bin',dtype=π.χ.int64))

Παραγωγή:

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

Συμπέρασμα:

Τρεις διαφορετικοί τρόποι ανάγνωσης του δυαδικού αρχείου παρουσιάστηκαν σε αυτό το σεμινάριο χρησιμοποιώντας απλά παραδείγματα. Το πρώτο παράδειγμα επέστρεψε το περιεχόμενο του δυαδικού αρχείου ως πίνακα byte. Το δεύτερο παράδειγμα επέστρεψε το περιεχόμενο του δυαδικού αρχείου ως λίστα. Το τελευταίο παράδειγμα επέστρεψε επίσης το περιεχόμενο του δυαδικού αρχείου ως λίστα.