Bináris fájlok olvasása Pythonban

How Read Binary Files Python



A bináris adatokat tartalmazó fájlt bináris fájlnak nevezzük. Minden formázott vagy formázatlan bináris adat bináris fájlban tárolódik, és ez a fájl nem olvasható ember által, és a számítógép közvetlenül használja. Ha egy bináris fájlra van szükség az egyik helyről a másikra történő olvasáshoz vagy átvitelhez, akkor a fájl tartalma konvertálható vagy kódolható ember által olvasható formátumba. A bináris fájl kiterjesztése .bin. A bináris fájl tartalma olvasható egy beépített függvény vagy modul használatával. Ebben az oktatóanyagban a bináris fájlok Pythonban történő olvasásának különböző módjait mutatjuk be.

Előfeltétel:

Mielőtt megvizsgálná az oktatóanyag példáit, jobb, ha létrehoz egy vagy több bináris fájlt a példaszkriptben. Két python fájl szkriptje az alábbiakban két bináris fájl létrehozásához adott. A binary1.py bináris fájlt hoz létre string.bin amely karakterlánc adatokat tartalmaz, és a binary2.py létrehoz egy bináris fájlt szám_lista.bin amely tartalmazni fogja a numerikus adatok listáját.







Bináris1.py

# Nyisson meg egy fájlkezelőt bináris fájl létrehozásához

file_handler= nyisd ki('string.bin', 'wb')

# Adjon hozzá két sor szöveget a bináris fájlhoz

file_handler.ír(bÜdvözöljük a LinuxHint -ben! nTanuld meg a Python programozást. ')

# Zárja be a fájlkezelőt

file_handler.Bezárás()

Bináris2.py

# Nyisson meg egy fájlkezelőt bináris fájl létrehozásához

fájlt=nyisd ki('number_list.bin','wb')

# Deklarálja a numerikus értékek listáját

számokat=[10,30,Négy öt,60,70,85,99]

# Konvertálja a listát tömbvé

barray=bytearray(számokat)

# Írjon tömböt a fájlba

fájlt.ír(barray)

fájlt.Bezárás()

1. példa: Olvassa el a karakterlánc-adatok bináris fájlját a bájt tömbbe

A Pythonban számos módszer létezik a bináris fájl olvasására. Egyszerre elolvashatja a bájtok adott számát vagy a bináris fájl teljes tartalmát. Hozzon létre egy python fájlt a következő szkripttel. Az open () függvény megnyitotta a string.bin az olvasáshoz. Az read () függvény 7 karakter olvasására szolgál a fájlból a while ciklus és a nyomtatás minden iterációjában. Ezután a read () függvény minden érv nélkül felhasználásra került a később kinyomtatandó bináris fájl teljes tartalmának olvasásához.



# Nyissa meg a bináris fájlt olvasáshoz

file_handler= nyisd ki('string.bin', 'rb')

# Olvassa el a bináris fájl első három bájtját

data_byte=file_handler.olvas(7)

nyomtatás('Nyomtasson három karaktert minden iterációban:')

# Ismételje meg a ciklust a fájl fennmaradó részének olvasásához

mígdata_byte:

nyomtatás(data_byte)

data_byte=file_handler.olvas(7)


# Olvassa el a teljes fájlt egyetlen bájtos karakterláncként

val vel nyisd ki('string.bin', 'rb') mintfh:

tartalom=fh.olvas()

nyomtatás('Nyomtassa ki a bináris fájl teljes tartalmát:')

nyomtatás(tartalom)

Kimenet:

A fenti kimenet megjelenik a fenti parancsfájl végrehajtása után.







2. példa: Olvassa el a karakterlánc-adatok bináris fájlját a tömbbe

Hozzon létre egy python -fájlt a következő parancsfájllal egy bináris fájl nevű olvasásához szám_lista.bin korábban létrehozott. Ez a bináris fájl tartalmazza a numerikus adatok listáját. Az előző példához hasonlóan a open () függvény megnyitotta a bináris fájlt a szkriptben való olvasáshoz. Ezután az első 5 szám olvasásra kerül a bináris fájlból, és nyomtatás előtt listává alakul.

# Nyissa meg a bináris fájlt olvasáshoz

fájlt = nyisd ki('number_list.bin', 'rb')

# Olvassa el az első öt számot a listában

szám= lista(fájlt.olvas(5))

# Nyomtassa ki a listát

nyomtatás(szám)

# Zárja be a fájlt

fájlt.Bezárás()

Kimenet:

A fenti kimenet megjelenik a fenti parancsfájl végrehajtása után. A bináris fájl 7 számot tartalmaz, és az első öt szám van nyomtatva a kimenetben.



3. példa: Olvassa el a bináris fájlt a NumPy használatával

A bináris fájl létrehozásának módjai a NumPy tömb és olvassa el a bináris fájl tartalmát egy listába a NumPy modul bemutattuk az oktatóanyag ezen részében. Mielőtt ellenőrizné az alábbi szkriptet, telepítenie kell a NumPy modul a parancs végrehajtásával a terminálról vagy a NumPy csomag a Python szerkesztőben, ahol a szkript végrehajtásra kerül. Az tofile () függvény szöveges vagy bináris fájl létrehozására szolgál, és a fromfile () függvény szöveg vagy bináris fájl olvasásával tömb létrehozására szolgál.

A tofile () szintaxisa:

ndarray.fájlhoz(fájlt,Szept='',formátum='%s')

Az első argumentum kötelező, és a fájlnevet, karakterláncot vagy elérési utat veszi értékként. A fájl akkor jön létre, ha fájlnevet ad meg ebben az argumentumban. A második argumentum nem kötelező, amelyet a tömb elemeinek elválasztására használnak. A harmadik argumentum szintén opcionális, és a szöveges fájl kimenetének formázására szolgál.

A fomfile () szintaxisa:

szar.fájlból(fájlt,dtype=úszó,számol=-1,Szept='',eltolás=0,*,mint=Egyik sem)

Az első argumentum kötelező, és a fájlnevet, karakterláncot vagy elérési utat veszi értékként. A fájl tartalma olvasásra kerül, ha fájlnevet ad meg ebben az érvben. Az dtype a visszaadott tömb adattípusát határozza meg. A számláló a tételek számának számlálására szolgál. A cél a Szept a szöveg vagy tömb elemek elválasztása. Az eltolás a fájl aktuális pozíciójának meghatározására szolgál. Az utolsó argumentum olyan tömbobjektum létrehozására szolgál, amely nem a NumPy tömb .

Hozzon létre egy python -fájlt a következő szkripttel, hogy bináris fájlt hozzon létre NumPy tömb és olvassa el és nyomtassa ki a bináris fájl tartalmát.

# Importálja a NumPy modult

importszarmintpéldául

# Nyilad tömb deklarálása

nparray=például.sor([3. 4, 89, 30, Négy öt, 90, tizenegy])

# Hozzon létre bináris fájlt a numpy tömbből

nparray.fájlhoz('list.bin')

# Nyomtasson adatokat a bináris fájlból

nyomtatás(például.fájlból('list.bin',dtype=például.int64))

Kimenet:

A fenti kimenet megjelenik a fenti parancsfájl végrehajtása után.

Következtetés:

A bináris fájl olvasásának három különböző módját mutattuk be ebben az oktatóanyagban egyszerű példák segítségével. Az első példa bináris fájl tartalmát bájt tömbként adta vissza. A második példa a bináris fájl tartalmát listaként adta vissza. Az utolsó példa a bináris fájl tartalmát is listaként adta vissza.