Kā lasīt bināros failus Python

How Read Binary Files Python



Failu, kurā ir binārie dati, sauc par bināro failu. Visi formatētie vai neformatētie binārie dati tiek glabāti binārā failā, un šis fails nav lasāms cilvēkiem, un dators to izmanto tieši. Ja ir nepieciešams binārs fails, lai to nolasītu vai pārsūtītu no vienas vietas uz citu, faila saturs tiek pārveidots vai kodēts cilvēkam lasāmā formātā. Binārā faila paplašinājums ir .bin. Binārā faila saturu var nolasīt, izmantojot iebūvētu funkciju vai moduli. Šajā apmācībā ir parādīti dažādi veidi, kā lasīt bināros failus Python.

Priekšnosacījums:

Pirms pārbaudīt šīs apmācības piemērus, labāk ir izveidot vienu vai vairākus bināros failus, ko izmantot parauga skriptā. Divu python failu skripts ir norādīts zemāk, lai izveidotu divus bināros failus. Binary1.py izveidos bināru failu ar nosaukumu string.bin kurā būs virknes dati, un binary2.py izveidos bināru failu ar nosaukumu number_list.bin kurā būs ciparu datu saraksts.







Binārs1.py

# Atveriet failu apstrādātāju, lai izveidotu bināro failu

file_handler= atvērts('string.bin', 'wb')

# Pievienojiet binārā failā divas teksta rindiņas

file_handler.rakstīt(b'Laipni lūdzam LinuxHint. nUzziniet Python programmēšanu. ')

# Aizveriet failu apstrādātāju

file_handler.aizvērt()

Binārs2.py

# Atveriet failu apstrādātāju, lai izveidotu bināro failu

failu=atvērts('number_list.bin','wb')

# Deklarējiet skaitlisko vērtību sarakstu

numurus=[10,30,Četri, pieci,60,70,85,99]

# Pārvērst sarakstu masīvā

barray=pieplūdums(numurus)

# Ierakstiet failā masīvu

failu.rakstīt(barray)

failu.aizvērt()

1. piemērs: izlasiet virkņu datu bināro failu baitu masīvā

Python ir daudz veidu, kā nolasīt bināro failu. Vienlaikus varat izlasīt konkrēto baitu skaitu vai pilnu binārā faila saturu. Izveidojiet pitona failu ar šādu skriptu. The open () funkcija izmanto, lai atvērtu string.bin lasīšanai. The funkcija read () ir izmantots, lai nolasītu 7 rakstzīmes no faila katrā cikla un drukāšanas atkārtojumā. Tālāk, funkcija read () ir izmantots bez jebkādiem argumentiem, lai izlasītu visu bināro failu saturu, kas tiks izdrukāts vēlāk.



# Atveriet bināro failu lasīšanai

file_handler= atvērts('string.bin', 'rb')

# Izlasiet pirmos trīs baitus no binārā faila

data_baits=file_handler.lasīt(7)

drukāt('Izdrukājiet trīs rakstzīmes katrā iterācijā:')

# Atkārtojiet ciklu, lai izlasītu atlikušo faila daļu

kamērdata_baits:

drukāt(data_baits)

data_baits=file_handler.lasīt(7)


# Izlasiet visu failu kā viena baita virkni

ar atvērts('string.bin', 'rb') fh:

saturu=fh.lasīt()

drukāt('Drukāt visu binārā faila saturu:')

drukāt(saturu)

Izeja:

Pēc iepriekš minētā skripta izpildes parādīsies šāda izvade.







2. piemērs: masīvā izlasiet virknes datu bināro failu

Izveidojiet pitona failu ar šādu skriptu, lai izlasītu bināro failu ar nosaukumu number_list.bin izveidots iepriekš. Šajā binārajā failā ir ciparu datu saraksts. Tāpat kā iepriekšējais piemērs ,. open () funkcija ir izmantojis atvērt bināro failu lasīšanai skriptā. Pēc tam pirmie 5 cipari tiks nolasīti no binārā faila un pirms drukāšanas pārvērsti sarakstā.

# Atveriet bināro failu lasīšanai

failu = atvērts('number_list.bin', 'rb')

# Izlasiet pirmos piecus ciparus sarakstā

numurs= sarakstu(failu.lasīt(5))

# Drukājiet sarakstu

drukāt(numurs)

# Aizveriet failu

failu.aizvērt()

Izeja:

Pēc iepriekš minētā skripta izpildes parādīsies šāda izvade. Binārajā failā ir 7 cipari, un pirmie pieci skaitļi ir izdrukāti izvadā.



3. piemērs: lasiet bināro failu, izmantojot NumPy

Binārā faila izveides veidi, izmantojot NumPy masīvs un izlasiet binārā faila saturu, izmantojot sarakstu, izmantojot NumPy modulis ir parādīti šajā apmācības daļā. Pirms pārbaudīt zemāk norādīto skriptu, jums jāinstalē NumPy modulis izpildot komandu no termināļa vai instalējot NumPy pakete Python redaktorā, kur tiks izpildīts skripts. The tofile () funkcija tiek izmantots, lai izveidotu teksta vai bināro failu, un fromfile () funkcija tiek izmantots, lai izveidotu masīvu, lasot teksta vai bināro failu.

Tofila () sintakse:

ndarray.uz failu(failu,Sept='',formātā='%s')

Pirmais arguments ir obligāts, un tā vērtība ir faila nosaukums vai virkne vai ceļš. Fails tiks izveidots, ja šajā argumentā ir norādīts faila nosaukums. Otrais arguments nav obligāts, ko izmanto, lai atdalītu masīva elementus. Trešais arguments arī nav obligāts un tiek izmantots teksta faila izvades formatēšanai.

Fomfile () sintakse:

dūšīgs.no faila(failu,dtype=peldēt,saskaitīt=-1,Sept='',nobīde=0,*,patīk=Nav)

Pirmais arguments ir obligāts, un tā vērtība ir faila nosaukums vai virkne vai ceļš. Faila saturs tiks nolasīts, ja šajā argumentā tiks norādīts faila nosaukums. The dtype definē atgrieztā masīva datu tipu. Skaits tiek izmantots, lai saskaitītu vienumu skaitu. Mērķis Sept ir atdalīt teksta vai masīva vienumus. Nobīde tiek izmantota, lai definētu faila pašreizējo atrašanās vietu. Pēdējais arguments tiek izmantots, lai izveidotu masīva objektu, kas nav a NumPy masīvs .

Izveidojiet pitona failu ar šādu skriptu, lai izveidotu bināro failu, izmantojot NumPy masīvs un lasīt un izdrukāt binārā faila saturu.

# Importēt NumPy moduli

importētdūšīgspiem

# Deklarējiet numpy masīvu

nparray=piem.masīvs([3. 4, 89, 30, Četri, pieci, 90, vienpadsmit])

# Izveidojiet bināro failu no numpy masīva

nparray.uz failu('list.bin')

# Drukājiet datus no binārā faila

drukāt(piem.no faila('list.bin',dtype=piem.int64))

Izeja:

Pēc iepriekš minētā skripta izpildes parādīsies šāda izvade.

Secinājums:

Šajā apmācībā, izmantojot vienkāršus piemērus, ir parādīti trīs dažādi binārā faila lasīšanas veidi. Pirmais piemērs atgriezis binārā faila saturu kā baitu masīvu. Otrais piemērs atgriezis binārā faila saturu kā sarakstu. Pēdējais piemērs arī atgriezis binārā faila saturu kā sarakstu.