Jak číst binární soubory v Pythonu

How Read Binary Files Python



Soubor, který obsahuje binární data, se nazývá binární soubor. Jakákoli formátovaná nebo neformátovaná binární data jsou uložena v binárním souboru a tento soubor není čitelný pro člověka a je používán počítačem přímo. Pokud je ke čtení nebo přenosu z jednoho umístění do jiného umístění vyžadován binární soubor, obsah souboru je převeden nebo zakódován do formátu čitelného pro člověka. Přípona binárního souboru je .bin. Obsah binárního souboru lze přečíst pomocí vestavěné funkce nebo modulu. V tomto kurzu byly ukázány různé způsoby čtení binárních souborů v Pythonu.

Předpoklad:

Před kontrolou příkladů tohoto kurzu je lepší vytvořit jeden nebo více binárních souborů, které použijete v ukázkovém skriptu. Níže uvedený skript dvou souborů pythonu vytvořil dva binární soubory. Binary1.py vytvoří binární soubor s názvem string.bin který bude obsahovat řetězcová data a binary2.py vytvoří binární soubor s názvem number_list.bin který bude obsahovat seznam číselných údajů.







Binary1.py

# Otevřete obslužný program souboru a vytvořte binární soubor

file_handler= otevřeno('string.bin', 'wb')

# Přidejte dva řádky textu do binárního souboru

file_handler.napsat(b„Vítejte v LinuxHintu. nNaučte se programovat v Pythonu. ')

# Zavřete obslužný program souboru

file_handler.zavřít()

Binary2.py

# Otevřete obslužný program souboru a vytvořte binární soubor

soubor=otevřeno('number_list.bin','wb')

# Deklarujte seznam číselných hodnot

čísla=[10,30,Čtyři pět,60,70,85,99]

# Převeďte seznam na pole

barray=být pryč(čísla)

# Zapište pole do souboru

soubor.napsat(barray)

soubor.zavřít()

Příklad-1: Přečte binární soubor řetězcových dat do bajtového pole

V Pythonu existuje mnoho způsobů, jak číst binární soubor. Najednou můžete přečíst konkrétní počet bajtů nebo úplný obsah binárního souboru. Vytvořte soubor pythonu pomocí následujícího skriptu. The funkce open () použil k otevření souboru string.bin pro čtení. The funkce read () byl použit ke čtení 7 znaků ze souboru v každé iteraci while smyčky a tisku. Dále, funkce read () byl použit bez jakéhokoli argumentu ke čtení celého obsahu binárního souboru, který bude vytištěn později.



# Otevřete binární soubor pro čtení

file_handler= otevřeno('string.bin', 'rb')

# Přečtěte si první tři bajty z binárního souboru

data_byte=file_handler.číst(7)

tisk('Vytiskněte tři znaky v každé iteraci:')

# Opakujte smyčku a přečtěte si zbývající část souboru

zatímcodata_byte:

tisk(data_byte)

data_byte=file_handler.číst(7)


# Přečtěte celý soubor jako jeden bajtový řetězec

s otevřeno('string.bin', 'rb') tak jakofh:

obsah=fh.číst()

tisk('Vytisknout celý obsah binárního souboru:')

tisk(obsah)

Výstup:

Po spuštění výše uvedeného skriptu se zobrazí následující výstup.







Příklad-2: Přečte binární soubor řetězcových dat do pole

Vytvořte soubor pythonu pomocí následujícího skriptu pro čtení binárního souboru s názvem number_list.bin vytvořeno dříve. Tento binární soubor obsahuje seznam číselných údajů. Stejně jako předchozí příklad, funkce open () použil ke čtení ve skriptu otevření binárního souboru. Dále bude prvních 5 čísel načteno z binárního souboru a před tiskem převedeno do seznamu.

# Otevřete binární soubor pro čtení

soubor = otevřeno('number_list.bin', 'rb')

# Přečtěte si prvních pět čísel do seznamu

číslo= seznam(soubor.číst(5))

# Vytiskněte seznam

tisk(číslo)

# Zavřete soubor

soubor.zavřít()

Výstup:

Po spuštění výše uvedeného skriptu se zobrazí následující výstup. Binární soubor obsahuje 7 čísel a prvních pět čísel je vytištěno ve výstupu.



Příklad 3: Čtení binárního souboru pomocí NumPy

Způsoby vytvoření binárního souboru pomocí souboru Pole NumPy a přečtěte obsah binárního souboru pomocí do seznamu pomocí Modul NumPy ukázaly v této části tutoriálu. Před kontrolou níže uvedeného skriptu musíte nainstalovat Modul NumPy spuštěním příkazu z terminálu nebo instalací souboru Balíček NumPy v editoru Pythonu, kde bude skript spuštěn. The funkce tofile () se používá k vytvoření textového nebo binárního souboru a funkce fromfile () se používá k vytvoření pole čtením textového nebo binárního souboru.

Syntaxe souboru tofile ():

ndarray.tofile(soubor,Září='',formát='%s')

První argument je povinný a považuje za hodnotu název souboru nebo řetězec nebo cestu. Soubor bude vytvořen, pokud je v tomto argumentu uveden název souboru. Druhý argument je volitelný, který se používá k oddělení prvků pole. Třetí argument je také volitelný a slouží k formátování výstupu textového souboru.

Syntaxe fomfile ():

otupělý.ze souboru(soubor,dtype=plovák,počet=-1,Září='',ofset=0,*,jako=Žádný)

První argument je povinný a považuje za hodnotu název souboru nebo řetězec nebo cestu. Pokud bude v tomto argumentu uveden název souboru, bude načten obsah souboru. The dtype definuje datový typ vráceného pole. Počet se používá k počítání počtu položek. Účelem Září je oddělit textové nebo maticové položky. Ofset slouží k definování aktuální polohy souboru. Poslední argument se používá k vytvoření objektu pole, který není a Pole NumPy .

Vytvořte soubor pythonu pomocí následujícího skriptu a vytvořte binární soubor pomocí Pole NumPy a přečtěte a vytiskněte obsah binárního souboru.

# Importovat modul NumPy

importotupělýtak jakonapř

# Deklarujte početné pole

nparray=např.pole([3. 4, 89, 30, Čtyři pět, 90, jedenáct])

# Vytvořte binární soubor z numpy pole

nparray.tofile('list.bin')

# Tisk dat z binárního souboru

tisk(např.ze souboru('list.bin',dtype=např.int64))

Výstup:

Po spuštění výše uvedeného skriptu se zobrazí následující výstup.

Závěr:

V tomto kurzu byly pomocí jednoduchých příkladů ukázány tři různé způsoby čtení binárního souboru. První příklad vrátil obsah binárního souboru jako bajtové pole. Druhý příklad vrátil obsah binárního souboru jako seznam. Poslední příklad také vrátil obsah binárního souboru jako seznam.