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áhozfile_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áhozfá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áshozfá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 modultimportszarmintpé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.