Cómo leer bytes de un stream
Se ofrece una forma alternativa de leer el contenido de un archivo binario mediante el método denominado read()
.
Invocado sin argumentos, intenta leer todo el contenido del archivo en la memoria, haciéndolo parte de un objeto recién creado de la clase bytes.
Esta clase tiene algunas similitudes con bytearray
, con la excepción de una diferencia significativa: es immutable.
Afortunadamente, no hay obstáculos para crear un arreglo de bytes tomando su valor inicial directamente del objeto de bytes, como aquí:
from os import strerror
try:
bf = open('file.bin', 'rb')
data = bytearray(bf.read())
bf.close()
for b in data:
print(hex(b), end=' ')
except IOError as e:
print("Se produjo un error de E/S: ", strerr(e.errno))
Ten cuidado - no utilices este tipo de lectura si no estás seguro de que el contenido del archivo se ajuste a la memoria disponible.
Code
from os import strerrordata = bytearray(10)
for i in range(len(data)):
data[i] = 10 + i
try:
bf = open('file.bin', 'wb')
bf.write(data)
bf.close()
except IOError as e:
print("Se produjo un error de E/S: ", strerr(e.errno))
# ingresa aquí el código que lee los bytes del stream
{{ dockerServerErrorMsg }}
×
{{ errorMsg }}
×
{{ successMsg }}
×