Kaip skaityti dvejetainius failus „Python“

How Read Binary Files Python



Failas, kuriame yra dvejetainiai duomenys, vadinamas dvejetainiu failu. Bet kokie suformatuoti arba neformatuoti dvejetainiai duomenys yra saugomi dvejetainiame faile, o šis failas nėra skaitomas žmonėms ir yra tiesiogiai naudojamas kompiuterio. Kai dvejetainis failas turi būti perskaitytas arba perkeltas iš vienos vietos į kitą, failo turinys konvertuojamas arba užkoduodamas žmonėms suprantamu formatu. Dvejetainio failo plėtinys yra .bin. Dvejetainio failo turinį galima perskaityti naudojant įmontuotą funkciją arba modulį. Šioje pamokoje buvo parodyti įvairūs dvejetainių failų skaitymo „Python“ būdai.

Būtina sąlyga:

Prieš tikrindami šios pamokos pavyzdžius, geriau sukurti vieną ar kelis dvejetainius failus, kuriuos naudosite pavyzdiniame scenarijuje. Žemiau pateiktas dviejų „Python“ failų scenarijus, skirtas sukurti du dvejetainius failus. „Binary1.py“ sukurs dvejetainį failą pavadinimu string.bin kuriame bus eilutės duomenys, o „binary2.py“ sukurs dvejetainį failą pavadinimu number_list.bin kuriame bus skaitinių duomenų sąrašas.







Dvejetainis1.py

# Atidarykite failų tvarkyklę, kad sukurtumėte dvejetainį failą

failų tvarkytojas= atviras('string.bin', 'wb')

# Į dvejetainį failą pridėkite dvi teksto eilutes

failų tvarkytojas.rašyti(b„Sveiki atvykę į„ LinuxHint “. nIšmokite programuoti „Python“. “)

# Uždarykite failų tvarkyklę

failų tvarkytojas.Uždaryti()

Dvejetainis2.py

# Atidarykite failų tvarkyklę, kad sukurtumėte dvejetainį failą

failą=atviras('number_list.bin','wb')

# Skelbti skaičių reikšmių sąrašą

skaičių=[10,30,Keturi, penki,60,70,85,99]

# Konvertuokite sąrašą į masyvą

barakas=bytearray(skaičių)

# Į failą įrašykite masyvą

failą.rašyti(barakas)

failą.Uždaryti()

1 pavyzdys: perskaitykite eilutės duomenų dvejetainį failą į baitų masyvą

„Python“ yra daug būdų skaityti dvejetainį failą. Vienu metu galite perskaityti tam tikrą baitų skaičių arba visą dvejetainio failo turinį. Sukurkite „Python“ failą naudodami šį scenarijų. The open () funkcija naudojamas atidaryti string.bin skaitymui. The funkcija (skaityti) buvo naudojamas 7 simboliams iš failo perskaityti kiekvienoje ciklo ir spausdinimo iteracijoje. Toliau, funkcija (skaityti) buvo naudojamas be jokių argumentų, norint perskaityti visą dvejetainio failo turinį, kuris bus atspausdintas vėliau.



# Atidarykite dvejetainį failą skaitymui

failų tvarkytojas= atviras('string.bin', „rb“)

# Perskaitykite pirmuosius tris baitus iš dvejetainio failo

data_baitas=failų tvarkytojas.skaityti(7)

spausdinti(„Spausdinkite tris simbolius kiekvienoje iteracijoje:“)

# Pakartokite ciklą, kad perskaitytumėte likusią failo dalį

tuo tarpudata_baitas:

spausdinti(data_baitas)

data_baitas=failų tvarkytojas.skaityti(7)


# Perskaitykite visą failą kaip vieno baito eilutę

su atviras('string.bin', „rb“) kaipfh:

turinys=fh.skaityti()

spausdinti(„Spausdinkite visą dvejetainio failo turinį:“)

spausdinti(turinys)

Išėjimas:

Įvykdžius aukščiau pateiktą scenarijų, pasirodys ši išvestis.







2 pavyzdys: perskaitykite eilutės duomenų dvejetainį failą į masyvą

Sukurkite „Python“ failą naudodami šį scenarijų, kad perskaitytumėte dvejetainį failą pavadinimu number_list.bin sukurtas anksčiau. Šiame dvejetainiame faile yra skaitinių duomenų sąrašas. Kaip ir ankstesnis pavyzdys, open () funkcija naudojo atidaryti dvejetainį failą skaitymui scenarijuje. Tada pirmieji 5 skaičiai bus nuskaityti iš dvejetainio failo ir prieš spausdinant paversti į sąrašą.

# Atidarykite dvejetainį failą skaitymui

failą = atviras('number_list.bin', „rb“)

# Perskaitykite pirmuosius penkis skaičius į sąrašą

skaičius= sąrašą(failą.skaityti(5))

# Spausdinkite sąrašą

spausdinti(skaičius)

# Uždarykite failą

failą.Uždaryti()

Išėjimas:

Įvykdžius aukščiau pateiktą scenarijų, pasirodys ši išvestis. Dvejetainiame faile yra 7 skaičiai, o pirmieji penki skaičiai yra atspausdinti išvestyje.



3 pavyzdys: skaitykite dvejetainį failą naudodami „NumPy“

Dvejetainio failo kūrimo būdai naudojant „NumPy“ masyvas ir perskaitykite dvejetainio failo turinį į sąrašą naudodami „NumPy“ modulis buvo parodyta šioje pamokos dalyje. Prieš tikrindami žemiau pateiktą scenarijų, turite įdiegti „NumPy“ modulis vykdydami komandą iš terminalo arba įdiegdami „NumPy“ paketas „Python“ redaktoriuje, kur scenarijus bus vykdomas. The tofile () funkcija naudojamas tekstiniam arba dvejetainiam failui sukurti, o fromfile () funkcija naudojamas masyvui sukurti skaitant tekstinį ar dvejetainį failą.

„Tofile“ () sintaksė:

ndarray.į failą(failą,Rugsėjo mėn='',formatu=„%s“)

Pirmasis argumentas yra privalomas ir failo pavadinimą, eilutę ar kelią laiko reikšme. Failas bus sukurtas, jei šiame argumente bus pateiktas failo pavadinimas. Antrasis argumentas yra neprivalomas, naudojamas masyvo elementams atskirti. Trečias argumentas taip pat neprivalomas ir naudojamas teksto failo išvesties formatavimui.

„Fomfile“ () sintaksė:

varginantis.iš failo(failą,dtype=plūdė,skaičiuoti=-1,Rugsėjo mėn='',kompensuoti=0,*,Kaip=Nė vienas)

Pirmasis argumentas yra privalomas ir failo pavadinimą, eilutę ar kelią laiko reikšme. Failo turinys bus perskaitytas, jei šiame argumente bus pateiktas failo pavadinimas. The dtype apibrėžia grąžinamo masyvo duomenų tipą. Skaičius naudojamas elementų skaičiavimui. Tikslas Rugsėjo mėn yra atskirti teksto ar masyvo elementus. Poslinkis naudojamas dabartinei failo padėčiai apibrėžti. Paskutinis argumentas naudojamas masyvo objektui, kuris nėra a, sukurti „NumPy“ masyvas .

Sukurkite „Python“ failą naudodami šį scenarijų, kad sukurtumėte dvejetainį failą naudodami „NumPy“ masyvas ir skaityti bei spausdinti dvejetainio failo turinį.

# Importuoti „NumPy“ modulį

importasvarginantiskaippvz

# Skelbti numpy masyvą

nparray=pvz.masyvas([3. 4, 89, 30, Keturi, penki, 90, vienuolika])

# Sukurkite dvejetainį failą iš numpy masyvo

nparray.į failą('list.bin')

# Spausdinkite duomenis iš dvejetainio failo

spausdinti(pvz.iš failo('list.bin',dtype=pvz.int64))

Išėjimas:

Įvykdžius aukščiau pateiktą scenarijų, pasirodys ši išvestis.

Išvada:

Šioje pamokoje, naudojant paprastus pavyzdžius, buvo parodyti trys skirtingi dvejetainio failo skaitymo būdai. Pirmasis pavyzdys grąžino dvejetainio failo turinį kaip baitų masyvą. Antrasis pavyzdys grąžino dvejetainio failo turinį kaip sąrašą. Paskutinis pavyzdys taip pat grąžino dvejetainio failo turinį kaip sąrašą.