Čítanie binárnych súborov je dôležitá zručnosť pre prácu s údajmi (netextovými), ako sú obrázky, zvuk a videá. Pomocou režimu súborov a čítať môžete jednoducho čítať binárne súbory. Python má schopnosť nakladať s údajmi a súhlas poskytuje rôznu pomoc pri určitých kritériách. Či už máte do činenia s multimediálne súbory, komprimované údaje alebo vlastný binárny formát Schopnosť Pythonu spracovávať binárne dáta vám umožňuje vytvárať výkonné a všestranné aplikácie pre širokú škálu prípadov použitia. V tomto článku sa to dozviete Čo sú to binárne súbory a ako čítať dáta do bajtového poľa , a Čítať binárne dáta na kúsky? a tak ďalej.
Čo sú to binárne súbory?
Vo všeobecnosti binárne znamená dva. V informatike sú binárne súbory uložené v binárnom formáte s číslicami 0 a 1 . Napríklad, číslo 9 v binárnom formáte je reprezentované ako „1001“ . Týmto spôsobom náš počítač ukladá každý súbor v strojovo čitateľnom formáte v sekvencii binárnych číslic. Štruktúra a formát binárnych súborov závisí od typu súboru. Obrazové súbory majú v porovnaní so zvukovými súbormi odlišnú štruktúru. Dekódovanie binárnych súborov však závisí od zložitosti formátu súboru. V tomto článku pochopíme čítanie binárnych súborov.
Python číta binárny súbor
Ak chcete čítať binárny súbor,
Krok 1: Otvorte binárny súbor v binárnom režime
Aby sme mohli čítať binárny súbor v Pythone, musíme ho najprv otvoriť v binárnom režime („rb“). Na dosiahnutie tohto cieľa môžeme použiť funkciu „open()“.
Krok 2: Vytvorte binárny súbor
Ak chcete vytvoriť binárny súbor v Pythone, musíte súbor otvoriť v režime binárneho zápisu ( wb ). Viac nájdete v tomto článku.
Python – Zápis bajtov do súboru
Krok 3: Prečítajte si binárne údaje
Po otvorení binárneho súboru v binárnom režime môžeme pomocou metódy read() prečítať jeho obsah do premennej. Metóda read() vráti sekvenciu bajtov, ktorá predstavuje binárne dáta.
Krok 4: Spracujte binárne údaje
Keď načítame binárne dáta do premennej, môžeme ich spracovať podľa našich špecifických požiadaviek. Spracovanie binárnych údajov môže zahŕňať rôzne úlohy, ako je dekódovanie binárnych údajov, analýza obsahu alebo zápis údajov do iného binárneho súboru.
Krok 5: Zatvorte súbor
Po prečítaní a spracovaní binárnych údajov je nevyhnutné zavrieť súbor pomocou metódy close(), aby ste uvoľnili systémové prostriedky a predišli možným problémom s prístupom k súboru.
Python3
IMMS hry pre Android
# Opening the binary file in binary mode as rb(read binary)> f>=> open>(>'files.zip'>, mode>=>'rb'>)> # Reading file data with read() method> data>=> f.read()> # Knowing the Type of our data> print>(>type>(data))> # Printing our byte sequenced data> print>(data)> # Closing the opened file> f.close()> |
>
>
Výkon:
Vo výstupe vidíme postupnosť bajtových údajov, pretože bajty sú základnou jednotkou binárnej reprezentácie.
b'PKx03x04x14x00x00x00x08x00UxbdxebVxc2=jx87x1ex00x00x00!x00x00x00 x00x00 x00TODO11.txtxe3xe5JN,xceH-/xe6xe5x82xc0xccxbcx92xd4x9cx9cxccx82xc4xc4x12^.w7wx00PKx x02x14x00x14x00x00x00x08x00UxbdxebVxc2=jx87x1ex00x00x00!x00x00x00 x00x00 x00x00x00x00x00x01x00 x00x00x00x00x00x00x00TODO11.txtPKx05x06x00x00x00x00x01x00x0 x00x00x00Fx00x00x00x00x00′
Čítanie binárnych údajov do bajtového poľa
Tento daný kód ukazuje, ako čítať binárne dáta zo súboru do bajtového poľa a potom čítať binárne dáta do binárneho poľa vytlačiť dáta pomocou cyklu while. Vysvetlime si kód krok za krokom:
Otvorte binárny súbor
Tento riadok otvorí binárny súbor s názvom string.bin v binárnom režime („rb“). Súbor sa otvorí na čítanie a objekt súboru sa uloží do premennej „súbor“.
Python3
# Open the binary file> file> => open>(>'string.bin'>,>'rb'>)> |
>
>
Čítanie prvých troch bajtov
Tento riadok načíta prvé tri bajty z binárneho súboru a uloží ich do premenných dát. Metóda read(3) bajtov zo súboru a podľa toho posúva ukazovateľ.
Python3
data>=> file>.read(>3>)> |
>
>
Tlač údajov pomocou slučky while
Slučka bude čítať a tlačiť tri bajty naraz, kým sa nedosiahne koniec súboru. Po dosiahnutí konca súboru metóda read() vráti prázdny objekt bajtov, ktorý sa v podmienkach cyklu while vyhodnotí ako False a cyklus sa ukončí.
Python3
while> data:> >print>(data)> >data>=> file>.read(>3>)> |
prečiarknutie
>
>
Zatvorte binárny súbor
Nakoniec, keď cyklus dokončí čítanie a tlač údajov, zatvoríme binárny súbor pomocou metódy „close()“, aby sme uvoľnili systémové prostriedky.
Python3
file>.close()> |
>
>
Teraz pomocou vyššie uvedených krokov v jednom získame toto:
Výstup kódu bude závisieť od obsahu súboru string.bin binárny súbor. Kód číta a tlačí údaje v kusoch troch bajtov naraz, kým sa nedosiahne koniec súboru. Každá iterácia cyklu vytlačí tri bajty načítané zo súboru.
Python
# Open the binary file> file> => open>(>'string.bin'>,>'rb'>)> # Reading the first three bytes from the binary file> data>=> file>.read(>3>)> # Printing data by iterating with while loop> while> data:> >print>(data)> >data>=> file>.read(>3>)> # Close the binary file> file>.close()> |
>
veľkosť latexového písma
>
Ak je napríklad obsah string.bin b’GeeksForGeeks’ (sekvencia šiestich bajtov), výstup bude:
Výkon:
b 'Gee' b ' ksf' b 'org' b 'eek' b 's'>
Čítanie binárnych súborov v kúskoch
Na čítanie údajov binárneho súboru v kúskoch používame cyklus while na čítanie binárnych údajov zo súboru v kúskoch špecifikovanej veľkosti (veľkosť_chunku). Cyklus pokračuje, kým sa nedosiahne koniec súboru, a podľa toho sa spracuje každý kus údajov.
V tomto chunk_size=1024 sa používa na určenie veľkosti každého kúsku na čítanie binárneho súboru. file = open(binary_file.bin, rb): Tento riadok otvorí binárny súbor s názvom binary_file.bin v binárnom režime (rb). zatiaľ čo True sa používa na nastavenie nekonečnej slučky, ktorá bude pokračovať v čítaní súboru po častiach, kým sa nedosiahne koniec súboru. kus = súbor. read(chunk_size) je vo vnútri cyklu a metóda read(chunk_size) sa používa na čítanie časti binárnych dát zo súboru.
Python3
# Specify the size of each chunk to read> chunk_size>=> 10> file> => open>(>'binary_file.bin'>,>'rb'>)> # Using while loop to iterate the file data> while> True>:> >chunk>=> file>.read(chunk_size)> >if> not> chunk:> >break> ># Processing the chunk of binary data> >print>(f>'Read {len(chunk)} bytes: {chunk}'>)> |
>
>
Výstup kódu bude závisieť od obsahu binárneho súboru binary_file.bin a zadanej chunk_size. Napríklad, ak súbor obsahuje binárne dáta b Dobrý deň, toto sú binárne dáta!', a chunk_size je nastavená na 10, výstup bude:
Výkon :
Read 10 bytes: b'Hello, thi' Read 10 bytes: b's is binar' Read 7 bytes: b'y data!'>
Výstupy sa líšia v závislosti od údajov binárneho súboru, ktoré čítame, a tiež od veľkosti časti, ktorú špecifikujeme.
Čítanie údajov binárneho súboru do poľa
Na čítanie binárneho súboru do poľa array.bin a použitie režimu wb na zápis daného binárneho súboru. Pole je názov súboru. priradené pole ako num=[3,6,9,12,18] na získanie poľa v bajtovom formáte. použite byte array().
Na zápis poľa do súboru používame:
Python3
file>=>open>(>'array'>,>'wb'>)> num>=>[>3>,>6>,>9>,>12>,>18>]> array>=>bytearray(num)> file>.write(array)> file>.close()> |
>
>
Na čítanie zapísaného poľa z daného súboru sme použili rovnaký súbor, tj file=open(pole, rb). rb sa používa na čítanie poľa zo súboru. List() sa používa na vytvorenie objektu zoznamu. číslo=zoznam(súbor. čítať(3)). Na čítanie bajtov zo súboru. používa sa read().
Python3
file>=>open>(>'array'>,>'rb'>)> number>=>list>(>file>.read(>3>))> print> (number)> file>.close()> |
>
>
Výkon:
ak inak ak inak ak java
[3,6,9]>
Čítajte binárne súbory v Pythone pomocou NumPy
Ak chcete čítať binárny súbor do poľa NumPy, importujte modul NumPy. Dtype je np.unit8, čo znamená 8-bitové celé číslo bez znamienka. To znamená, že každá položka v poli je 8-bitové (1 bajt) celé číslo s hodnotami v rozsahu od 0 do 255.
Python3
import> numpy as np> # Open the file in binary mode> with>open>(>'myfile.bin'>,>'rb'>) as f:> ># Read the data into a NumPy array> >array>=> np.fromfile(f, dtype>=>np.uint8)># Change dtype according to your data> |
>
>
Nezabudnite zmeniť súbor na binárne súbory
Výkon :
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], dtype=np.uint8)>
Súvisiaci článok
Python | Previesť reťazec na bajty