Filen som inneholder binære data kalles en binær fil. Eventuelle formaterte eller uformaterte binære data lagres i en binær fil, og denne filen er ikke lesbar for mennesker og brukes av datamaskinen direkte. Når en binær fil er nødvendig for å lese eller overføre fra et sted til et annet sted, blir filens innhold konvertert eller kodet til et lesbart format. Utvidelsen av den binære filen er .bin. Innholdet i den binære filen kan leses ved hjelp av en innebygd funksjon eller modul. Ulike måter å lese binære filer i Python har blitt vist i denne opplæringen.
Forutsetning:
Før du sjekker eksemplene på denne opplæringen, er det bedre å lage en eller flere binære filer som skal brukes i eksempelskriptet. Skriptet til to python -filer har gitt nedenfor for å lage to binære filer. Binary1.py vil opprette en binær fil med navnet string.bin som vil inneholde strengdata, og binary2.py vil opprette en binær fil med navnet number_list.bin som vil inneholde en liste med numeriske data.
Binær1.py
# Åpne en filbehandler for å lage en binær filfile_handler= åpen('string.bin', 'wb')
# Legg til to tekstlinjer i den binære filen
file_handler.skrive(b'Velkommen til LinuxHint. nLær Python -programmering. ')
# Lukk filbehandleren
file_handler.Lukk()
Binary2.py
# Åpne en filbehandler for å lage en binær filfil=åpen('number_list.bin','wb')
# Angi en liste med numeriske verdier
tall=[10,30,Fire fem,60,70,85,99]
# Konverter listen til matrise
barray=bytearray(tall)
# Skriv matrise i filen
fil.skrive(barray)
fil.Lukk()
Eksempel-1: Les den binære filen med strengdata i byte-matrisen
Det finnes mange måter i Python for å lese den binære filen. Du kan lese det bestemte antall byte eller hele innholdet i den binære filen om gangen. Opprett en python -fil med følgende skript. De åpen () -funksjon har brukt til å åpne string.bin for lesing. De read () -funksjon har blitt brukt til å lese 7 tegn fra filen i hver iterasjon av mens loop og print. Deretter vil read () -funksjon har blitt brukt uten noe argument for å lese hele innholdet i den binære filen som vil bli skrevet ut senere.
# Åpne den binære filen for lesing
file_handler= åpen('string.bin', 'rb')
# Les de tre første byte fra den binære filen
data_byte=file_handler.lese(7)
skrive ut('Skriv ut tre tegn i hver iterasjon:')
# Gjenta sløyfen for å lese den gjenværende delen av filen
samtidig somdata_byte:
skrive ut(data_byte)
data_byte=file_handler.lese(7)
# Les hele filen som en enkelt byte -streng
med åpen('string.bin', 'rb') somfh:
innhold=fh.lese()
skrive ut('Skriv ut hele innholdet i den binære filen:')
skrive ut(innhold)
Produksjon:
Følgende utdata vises etter at skriptet ovenfor er utført.
Eksempel 2: Les den binære filen med strengdata i matrisen
Opprett en python -fil med følgende skript for å lese en binær fil som heter number_list.bin opprettet tidligere. Denne binære filen inneholder en liste over numeriske data. Som forrige eksempel, åpen () -funksjon har brukt åpne den binære filen for å lese i skriptet. Deretter vil de fem første tallene bli lest fra den binære filen og konvertert til en liste før utskrift.
# Åpne den binære filen for lesingfil = åpen('number_list.bin', 'rb')
# Les de fem første tallene i en liste
Nummer= liste(fil.lese(5))
# Skriv ut listen
skrive ut(Nummer)
# Lukk filen
fil.Lukk()
Produksjon:
Følgende utdata vises etter at skriptet ovenfor er utført. Den binære filen inneholder 7 tall, og de fem første tallene er skrevet ut i utgangen.
Eksempel-3: Les binærfil ved hjelp av NumPy
Måtene å lage den binære filen ved hjelp av NumPy -matrise og les innholdet i den binære filen i en liste ved å bruke NumPy -modul har vist i denne delen av opplæringen. Før du sjekker skriptet gitt nedenfor, må du installere NumPy -modul ved å utføre kommandoen fra terminalen eller installere NumPy -pakke i Python -editoren, der skriptet vil bli utført. De tofile () -funksjonen brukes til å lage en tekst- eller binærfil, og fromfile () -funksjon brukes til å lage en matrise ved å lese en tekst eller binær fil.
Syntaks for tofile ():
ndarray.å lagre(fil,Sep='',format='%s')Det første argumentet er obligatorisk og tar filnavnet eller strengen eller banen som en verdi. Filen vil bli opprettet hvis et filnavn er gitt i dette argumentet. Det andre argumentet er valgfritt som brukes til å skille matriseelementene. Det tredje argumentet er også valgfritt og brukes til å formatere utdataene fra tekstfilen.
Syntaks for fomfile ():
numpy.fra fil(fil,dtype=flyte,telle=-1,Sep='',forskyvning=0,*,som=Ingen)Det første argumentet er obligatorisk og tar filnavnet eller strengen eller banen som en verdi. Innholdet i filen vil bli lest hvis et filnavn kommer i dette argumentet. De dtype definerer datatypen for den returnerte matrisen. Tellingen brukes til å telle antall elementer. Hensikten med Sep er å skille tekst- eller matriselementene. Forskyvningen brukes til å definere gjeldende posisjon for filen. Det siste argumentet brukes til å lage et matriseobjekt som ikke et NumPy -matrise .
Opprett en python -fil med følgende skript for å lage en binær fil ved hjelp av NumPy -matrise og lese og skrive ut innholdet i den binære filen.
# Importer NumPy -modulimportnumpysomf.eks
# Deklarere numpy array
nparray=f.eks.matrise([3. 4, 89, 30, Fire fem, 90, elleve])
# Lag binær fil fra numpy array
nparray.å lagre('list.bin')
# Skriv ut data fra den binære filen
skrive ut(f.eks.fra fil('list.bin',dtype=f.eks.int64))
Produksjon:
Følgende utdata vises etter at skriptet ovenfor er utført.
Konklusjon:
Tre forskjellige måter å lese den binære filen har blitt vist i denne opplæringen ved å bruke enkle eksempler. Det første eksemplet returnerte innholdet i den binære filen som en byte -matrise. Det andre eksemplet returnerte innholdet i den binære filen som en liste. Det siste eksemplet returnerte også innholdet i den binære filen som en liste.