Kako brati binarne datoteke v Pythonu

How Read Binary Files Python



Datoteka, ki vsebuje binarne podatke, se imenuje binarna datoteka. Vsi formatirani ali neformatirani binarni podatki so shranjeni v binarni datoteki, ta datoteka pa ni berljiva za človeka in jo uporablja računalnik neposredno. Kadar je bralna datoteka potrebna za branje ali prenos z ene lokacije na drugo lokacijo, se vsebina datoteke pretvori ali kodira v obliko, ki jo bo brala oseba. Razširitev binarne datoteke je .bin. Vsebino binarne datoteke lahko berete z uporabo vgrajene funkcije ali modula. V tej vadnici so bili prikazani različni načini branja binarnih datotek v Pythonu.

Predpogoj:

Preden preverite primere te vadnice, je bolje ustvariti eno ali več binarnih datotek za uporabo v vzorčnem skriptu. Skript dveh datotek python je spodaj podan za ustvarjanje dveh binarnih datotek. Binary1.py bo ustvaril binarno datoteko z imenom string.bin ki bo vseboval niz podatkov, binary2.py pa bo ustvaril binarno datoteko z imenom number_list.bin ki bo vseboval seznam numeričnih podatkov.







Binary1.py

# Odprite upravljalnik datotek, da ustvarite binarno datoteko

file_handler= odprto('string.bin', 'wb')

# Dodajte dve vrstici besedila v binarno datoteko

file_handler.pisati(b'Dobrodošli v LinuxHintu. nNaučite se programiranja Python. ')

# Zaprite upravljalnik datotek

file_handler.blizu()

Binary2.py

# Odprite upravljalnik datotek, da ustvarite binarno datoteko

mapa=odprto('number_list.bin','wb')

# Razglasite seznam numeričnih vrednosti

številke=[10,30,Štiri, pet,60,70,85,99]

# Pretvorite seznam v matriko

baray=bytearray(številke)

# Zapišite matriko v datoteko

mapa.pisati(baray)

mapa.blizu()

Primer-1: Preberite binarno datoteko nizov v matriko bajtov

V Pythonu obstaja veliko načinov za branje binarne datoteke. Naenkrat lahko preberete določeno število bajtov ali celotno vsebino binarne datoteke. Ustvarite datoteko python z naslednjim skriptom. The funkcija open () uporabljal za odpiranje string.bin za branje. The funkcija read () je bil uporabljen za branje 7 znakov iz datoteke v vsaki iteraciji zanke while in tiskanja. Nato, funkcija read () je bil brez argumentov uporabljen za branje celotne vsebine binarne datoteke, ki bo natisnjena pozneje.



# Odprite binarno datoteko za branje

file_handler= odprto('string.bin', 'rb')

# Preberite prve tri bajte iz binarne datoteke

podatkovni_bajt=file_handler.prebrati(7)

tiskanje('Natisnite tri znake v vsaki ponovitvi:')

# Ponovite zanko, da preberete preostali del datoteke

medtempodatkovni_bajt:

tiskanje(podatkovni_bajt)

podatkovni_bajt=file_handler.prebrati(7)


# Preberite celotno datoteko kot en sam bajtni niz

z odprto('string.bin', 'rb') kotfh:

vsebino=fh.prebrati()

tiskanje('Natisnite celotno vsebino binarne datoteke:')

tiskanje(vsebino)

Izhod:

Po izvedbi zgornjega skripta se prikaže naslednji izhod.







Primer 2: Preberite binarno datoteko podatkov o nizu v matriko

Ustvarite datoteko python z naslednjim skriptom za branje binarne datoteke z imenom number_list.bin prej ustvarjen. Ta binarna datoteka vsebuje seznam numeričnih podatkov. Tako kot prejšnji primer, funkcija open () je uporabil odprto binarno datoteko za branje v skriptu. Nato se prvih 5 številk prebere iz binarne datoteke in se pred tiskanjem pretvori v seznam.

# Odprite binarno datoteko za branje

mapa = odprto('number_list.bin', 'rb')

# Preberite prvih pet številk na seznamu

številko= seznam(mapa.prebrati(5))

# Natisnite seznam

tiskanje(številko)

# Zaprite datoteko

mapa.blizu()

Izhod:

Po izvedbi zgornjega skripta se prikaže naslednji izhod. Binarna datoteka vsebuje 7 številk, prvih pet številk je natisnjenih v izhodu.



Primer 3: branje binarne datoteke z uporabo NumPy

Načini ustvarjanja binarne datoteke z uporabo Matrika NumPy in preberite vsebino binarne datoteke z uporabo datoteke na seznamu Modul NumPy prikazali v tem delu vadnice. Preden preverite spodnji skript, morate namestiti Modul NumPy z izvajanjem ukaza iz terminala ali namestitvijo Paket NumPy v urejevalniku Python, kjer se bo skript izvedel. The funkcija tofile () se uporablja za ustvarjanje besedilne ali binarne datoteke in funkcija fromfile () se uporablja za ustvarjanje matrike z branjem besedilne ali binarne datoteke.

Sintaksa tofile ():

ndarray.tofile(mapa,September='',format='%s')

Prvi argument je obvezen in za vrednost vzame ime datoteke ali niz ali pot. Datoteka bo ustvarjena, če je v tem argumentu navedeno ime datoteke. Drugi argument je neobvezen in se uporablja za ločevanje elementov matrike. Tretji argument je tudi neobvezen in se uporablja za oblikovanje izhoda besedilne datoteke.

Sintaksa fomfile ():

numpy.fromfile(mapa,dtype=plavati,šteti=-1,September='',odmik=0,*,kot=Nobena)

Prvi argument je obvezen in za vrednost vzame ime datoteke ali niz ali pot. Če bo v tem argumentu navedeno ime datoteke, se bo prebrala vsebina datoteke. The dtype definira podatkovni tip vrnjene matrike. Štetje se uporablja za štetje števila predmetov. Namen September je ločiti besedilo ali elemente matrike. Odmik se uporablja za določanje trenutnega položaja datoteke. Zadnji argument se uporablja za ustvarjanje predmeta matrike, ki ni a Matrika NumPy .

Ustvarite datoteko python z naslednjim skriptom za ustvarjanje binarne datoteke z uporabo Matrika NumPy ter prebrati in natisniti vsebino binarne datoteke.

# Uvozi modul NumPy

uvoznumpykotnpr

# Razglasite matriko numpy

nparray=npr.matriko([3. 4, 89, 30, Štiri, pet, 90, enajst])

# Ustvarite binarno datoteko iz matrike numpy

nparray.tofile('list.bin')

# Natisnite podatke iz binarne datoteke

tiskanje(npr.fromfile('list.bin',dtype=npr.int64))

Izhod:

Po izvedbi zgornjega skripta se prikaže naslednji izhod.

Zaključek:

V tej vadnici so bili prikazani trije različni načini branja binarne datoteke z uporabo preprostih primerov. Prvi primer je vrnil vsebino binarne datoteke kot matriko bajtov. Drugi primer je vrnil vsebino binarne datoteke kot seznam. Zadnji primer je tudi vrnil vsebino binarne datoteke kot seznam.