Как читать байты из потока
Альтернативный способ чтения содержимого двоичного файла предлагает метод с именем read()
.
Вызванный без аргументов, он пытается прочитать все содержимое файла в память, сделав их частью вновь созданного объекта класса bytes.
Этот класс имеет некоторые сходства с bytearray
, за исключением одного существенного различия - он неизменный.
К счастью, нет никаких препятствий для создания байтового массива путем получения его начального значения непосредственно из объекта байтов, как здесь:
from os import strerror
try:
binary_file = open('file.bin', 'rb')
data = bytearray(binary_file.read())
binary_file.close()
for b in data:
print(hex(b), end=' ')
except IOError as e:
print("I/O error occurred:", strerror(e.errno))
Будьте осторожны - не используйте этот тип чтения, если Вы не уверены, что содержимое файла будет соответствовать доступной памяти.
Code
from os import strerrordata = bytearray(10)
for i in range(len(data)):
data[i] = 10 + i
try:
binary_file = open('file.bin', 'wb')
binary_file.write(data)
binary_file.close()
except IOError as e:
print("I/O error occurred:", strerror(e.errno))
# Your code that reads bytes from the stream should go here.
{{ dockerServerErrorMsg }}
×
{{ errorMsg }}
×
{{ successMsg }}
×