Как да четете двоични файлове в Python

How Read Binary Files Python



Файлът, който съдържа двоични данни, се нарича двоичен файл. Всички форматирани или неформатирани двоични данни се съхраняват в двоичен файл и този файл не се чете от човека и се използва директно от компютъра. Когато се изисква двоичен файл за четене или прехвърляне от едно място на друго, съдържанието на файла се преобразува или кодира в четим от човека формат. Разширението на двоичния файл е .bin. Съдържанието на двоичния файл може да се прочете с помощта на вградена функция или модул. В този урок са показани различни начини за четене на двоични файлове в Python.

Предпоставка:

Преди да проверите примерите от този урок, е по -добре да създадете един или повече двоични файлове, които да използвате в примерния скрипт. Скриптът на два файла python е дал по -долу за създаване на два двоични файла. Binary1.py ще създаде двоичен файл с име string.bin които ще съдържат низови данни, а binary2.py ще създаде двоичен файл с име number_list.bin който ще съдържа списък с числови данни.







Binary1.py

# Отворете манипулатор на файлове, за да създадете двоичен файл

file_handler= отворен('string.bin', 'wb')

# Добавете два реда текст в двоичния файл

file_handler.пиши(б„Добре дошли в LinuxHint.нНаучете програмиране на Python. ')

# Затворете манипулатора на файлове

file_handler.близо()

Binary2.py

# Отворете манипулатор на файлове, за да създадете двоичен файл

файл=отворен('number_list.bin','wb')

# Декларирайте списък с числови стойности

числа=[10,30,Четири пет,60,70,85,99]

# Конвертирайте списъка в масив

барай=байтов ред(числа)

# Запишете масив във файла

файл.пиши(барай)

файл.близо()

Пример-1: Прочетете двоичния файл с низови данни в байтовия масив

В Python съществуват много начини за четене на двоичен файл. Можете да прочетете конкретния брой байтове или цялото съдържание на двоичния файл наведнъж. Създайте python файл със следния скрипт. The функция open () използва за отваряне на string.bin за четене. The функция read () е бил използван за четене на 7 знака от файла във всяка итерация на цикъл while и печат. След това, функция read () е използван без никакъв аргумент за четене на цялото съдържание на двоичния файл, който ще бъде отпечатан по -късно.



# Отворете двоичния файл за четене

file_handler= отворен('string.bin', 'rb')

# Прочетете първите три байта от двоичния файл

data_byte=file_handler.Прочети(7)

печат(„Отпечатайте три знака във всяка итерация:“)

# Итерирайте цикъла, за да прочетете останалата част от файла

докатоданни_байт:

печат(data_byte)

data_byte=file_handler.Прочети(7)


# Прочетете целия файл като еднобайтов низ

с отворен('string.bin', 'rb') катоfh:

съдържание=fh.Прочети()

печат(„Отпечатайте цялото съдържание на двоичния файл:“)

печат(съдържание)

Изход:

Следният изход ще се появи след изпълнение на горния скрипт.







Пример-2: Прочетете двоичния файл с низови данни в масива

Създайте python файл със следния скрипт, за да прочетете двоичен файл с име number_list.bin създадени по -рано. Този двоичен файл съдържа списък с числови данни. Подобно на предишния пример, функция open () е използвал отворен двоичен файл за четене в скрипта. След това първите 5 числа ще бъдат прочетени от двоичния файл и преобразувани в списък преди отпечатване.

# Отворете двоичния файл за четене

файл = отворен('number_list.bin', 'rb')

# Прочетете първите пет числа в списък

номер= списък(файл.Прочети(5))

# Отпечатайте списъка

печат(номер)

# Затворете файла

файл.близо()

Изход:

Следният изход ще се появи след изпълнение на горния скрипт. Двоичният файл съдържа 7 числа, като първите пет числа са отпечатани в изхода.



Пример-3: Четене на двоичен файл с помощта на NumPy

Начините за създаване на двоичен файл с помощта на NumPy масив и прочетете съдържанието на двоичния файл, използвайки в списък, като използвате Модул NumPy са показани в тази част на урока. Преди да проверите скрипта, даден по -долу, трябва да инсталирате Модул NumPy чрез изпълнение на командата от терминала или инсталиране на Пакет NumPy в редактора на Python, където скриптът ще бъде изпълнен. The функция tofile () се използва за създаване на текстов или двоичен файл, а функция fromfile () се използва за създаване на масив чрез четене на текстов или двоичен файл.

Синтаксис на tofile ():

ndarray.tofile(файл,Септември='',формат='%с')

Първият аргумент е задължителен и приема името на файла или низ или път като стойност. Файлът ще бъде създаден, ако в този аргумент е посочено име на файл. Вторият аргумент е по избор, който се използва за разделяне на елементите на масива. Третият аргумент също е по избор и се използва за форматиране на изхода на текстовия файл.

Синтаксис на fomfile ():

буца.fromfile(файл,dtype=плувам,броя=-1,Септември='',изместване=0,*,като=Нито един)

Първият аргумент е задължителен и приема името на файла или низ или път като стойност. Съдържанието на файла ще бъде прочетено, ако в този аргумент ще бъде предоставено име на файл. The dtype дефинира типа данни на върнатия масив. Преброяването се използва за преброяване на броя елементи. Целта на Септември е да разделите текста или елементите на масива. Отместването се използва за определяне на текущата позиция на файла. Последният аргумент се използва за създаване на обект от масив, който не е a NumPy масив .

Създайте python файл със следния скрипт, за да създадете двоичен файл, използвайки NumPy масив и прочетете и отпечатайте съдържанието на двоичния файл.

# Импортиране на модул NumPy

вносбуцакатонапр

# Декларирайте numpy масив

nparray=напр.масив([3. 4, 89, 30, Четири пет, 90, единадесет])

# Създайте двоичен файл от масив numpy

nparray.tofile('list.bin')

# Отпечатайте данни от двоичния файл

печат(напр.fromfile('list.bin',dtype=напр.int64))

Изход:

Следният изход ще се появи след изпълнение на горния скрипт.

Заключение:

В този урок са показани три различни начина за четене на двоичен файл, като се използват прости примери. Първият пример върна съдържанието на двоичния файл като байтов масив. Вторият пример връща съдържанието на двоичния файл като списък. Последният пример също върна съдържанието на двоичния файл като списък.