Ako čítať binárne súbory v Pythone

How Read Binary Files Python



Súbor, ktorý obsahuje binárne údaje, sa nazýva binárny súbor. Všetky naformátované alebo neformátované binárne údaje sú uložené v binárnom súbore a tento súbor nie je čitateľný pre ľudí a používa ho priamo počítač. Keď je na čítanie alebo prenos z jedného miesta na iné miesto potrebný binárny súbor, obsah súboru sa prevedie alebo zakóduje do formátu čitateľného pre človeka. Prípona binárneho súboru je .bin. Obsah binárneho súboru je možné čítať pomocou vstavanej funkcie alebo modulu. V tomto návode boli ukázané rôzne spôsoby čítania binárnych súborov v Pythone.

Predpoklad:

Pred kontrolou príkladov tohto tutoriálu je lepšie vytvoriť jeden alebo viac binárnych súborov, ktoré použijete v ukážkovom skripte. Skript dvoch súborov pythonu uviedol nižšie na vytvorenie dvoch binárnych súborov. Binary1.py vytvorí binárny súbor s názvom string.bin ktorý bude obsahovať reťazcové údaje a binary2.py vytvorí binárny súbor s názvom number_list.bin ktorý bude obsahovať zoznam číselných údajov.







Binary1.py

# Otvorte obslužný program súboru a vytvorte binárny súbor

file_handler= otvorené('string.bin', 'wb')

# Pridajte dva riadky textu do binárneho súboru

file_handler.písať(b'Vitajte v LinuxHint. nNaučte sa programovať v Pythone. ')

# Zatvorte obslužný program súboru

file_handler.Zavrieť()

Binary2.py

# Otvorte obslužný program súboru a vytvorte binárny súbor

súbor=otvorené('number_list.bin','wb')

# Vyhláste zoznam číselných hodnôt

čísla=[10,30,Štyria, piati,60,70,85,99]

# Konvertujte zoznam na pole

barray=byť preč(čísla)

# Zapíšte pole do súboru

súbor.písať(barray)

súbor.Zavrieť()

Príklad 1: Načítajte binárny súbor reťazcových údajov do bajtového poľa

V Pythone existuje mnoho spôsobov, ako čítať binárny súbor. Naraz môžete prečítať konkrétny počet bajtov alebo celý obsah binárneho súboru. Vytvorte súbor pythonu pomocou nasledujúceho skriptu. The funkcia open () používa na otvorenie súboru string.bin na čítanie. The funkcia read () sa používa na čítanie 7 znakov zo súboru v každej iterácii cyklu while a print. Ďalej, funkcia read () bol použitý bez akéhokoľvek argumentu na prečítanie celého obsahu binárneho súboru, ktorý bude vytlačený neskôr.



# Otvorte binárny súbor na čítanie

file_handler= otvorené('string.bin', 'rb')

# Prečítajte si prvé tri bajty z binárneho súboru

data_byte=file_handler.čítať(7)

vytlačiť(„Vytlačte tri znaky v každej iterácii:“)

# Opakujte slučku, aby ste prečítali zostávajúcu časť súboru

kýmdata_byte:

vytlačiť(data_byte)

data_byte=file_handler.čítať(7)


# Prečítajte celý súbor ako jednobajtový reťazec

s otvorené('string.bin', 'rb') akofh:

obsah=fh.čítať()

vytlačiť('Vytlačte celý obsah binárneho súboru:')

vytlačiť(obsah)

Výkon:

Po spustení vyššie uvedeného skriptu sa zobrazí nasledujúci výstup.







Príklad 2: Načítajte binárny súbor reťazcových údajov do poľa

Vytvorte súbor python s nasledujúcim skriptom na čítanie binárneho súboru s názvom number_list.bin vytvorený predtým. Tento binárny súbor obsahuje zoznam číselných údajov. Rovnako ako predchádzajúci príklad, funkcia open () použil na čítanie v skripte otvorený binárny súbor. Ďalej sa prvých 5 čísiel načíta z binárneho súboru a pred tlačou sa prevedie do zoznamu.

# Otvorte binárny súbor na čítanie

súbor = otvorené('number_list.bin', 'rb')

# Prečítajte si prvých päť čísel do zoznamu

číslo= zoznam(súbor.čítať(5))

# Vytlačte si zoznam

vytlačiť(číslo)

# Zatvorte súbor

súbor.Zavrieť()

Výkon:

Po spustení vyššie uvedeného skriptu sa zobrazí nasledujúci výstup. Binárny súbor obsahuje 7 čísel a prvých päť čísel je vytlačených vo výstupe.



Príklad 3: Prečítajte binárny súbor pomocou programu NumPy

Spôsoby, ako vytvoriť binárny súbor pomocou súboru Pole NumPy a načítať obsah binárneho súboru pomocou do zoznamu pomocou Modul NumPy ukázali v tejto časti tutoriálu. Pred kontrolou nižšie uvedeného skriptu musíte nainštalovať Modul NumPy vykonaním príkazu z terminálu alebo inštaláciou súboru Balíček NumPy v editore Pythonu, kde sa skript spustí. The funkcia tofile () sa používa na vytvorenie textového alebo binárneho súboru a funkcia fromfile () sa používa na vytvorenie poľa čítaním textového alebo binárneho súboru.

Syntax súboru tofile ():

ndarray.vyplniť(súbor,Sept='',formát='%s')

Prvý argument je povinný a ako hodnotu berie názov súboru alebo reťazec alebo cestu. Súbor sa vytvorí, ak je v tomto argumente uvedený názov súboru. Druhý argument je voliteľný a používa sa na oddelenie prvkov poľa. Tretí argument je tiež voliteľný a používa sa na formátovanie výstupu textového súboru.

Syntax súboru fomfile ():

otupený.zo súboru(súbor,dtype=plavák,počítať=-1,Sept='',ofset=0,*,Páči sa mi to=Žiadny)

Prvý argument je povinný a ako hodnotu berie názov súboru alebo reťazec alebo cestu. Obsah súboru bude prečítaný, ak bude v tomto argumente uvedený názov súboru. The dtype definuje dátový typ vráteného poľa. Počet sa používa na spočítanie počtu položiek. Účelom súboru Sept je oddeliť položky textu alebo poľa. Ofset sa používa na definovanie aktuálnej polohy súboru. Posledný argument sa používa na vytvorenie objektu poľa, ktorý nie je Pole NumPy .

Vytvorte súbor python pomocou nasledujúceho skriptu na vytvorenie binárneho súboru pomocou Pole NumPy a prečítajte a vytlačte obsah binárneho súboru.

# Importujte modul NumPy

importotupenýakonapr

# Deklarujte početné pole

nparray=napr.pole([3. 4, 89, 30, Štyria, piati, 90, jedenásť])

# Vytvorte binárny súbor z početného poľa

nparray.vyplniť('list.bin')

# Vytlačte údaje z binárneho súboru

vytlačiť(napr.zo súboru('list.bin',dtype=napr.int64))

Výkon:

Po spustení vyššie uvedeného skriptu sa zobrazí nasledujúci výstup.

Záver:

V tomto návode boli pomocou jednoduchých príkladov ukázané tri rôzne spôsoby čítania binárneho súboru. Prvý príklad vrátil obsah binárneho súboru ako bajtové pole. Druhý príklad vrátil obsah binárneho súboru ako zoznam. Posledný príklad tiež vrátil obsah binárneho súboru ako zoznam.