Algoritmos de Programación con Python

11.6. Manipular un archivo en forma binaria

No todos los archivos son archivos de texto, y por lo tanto no todos los archivos pueden ser procesados por líneas. Existen archivos en los que cada byte tiene un significado particular, y es necesario manipularlos conociendo el formato en que están los datos para poder procesar esa información.

Para abrir un archivo y manejarlo de forma binaria es necesario agregarle una b al parámetro de modo.

Para procesar el archivo de a bytes en lugar de líneas, se utiliza la función contenido = archivo.read(n) para leer n bytes y archivo.write(contenido), para escribir contenido en la posición actual del archivo.

Nota La b en el modo de apertura viene de binario, por el sistema de numeración binaria, ya que en el procesador de la computadora la información es manejada únicamente mediante ceros o unos (bits) que conforman números binarios.

Si bien no es necesaria en todos los sistemas (en general el mismo sistema detecta que es un archivo binario sin que se lo pidamos), es una buena costumbre usarla, por más que sirva principalmente como documentación.

Al manejar un archivo binario, es necesario poder conocer la posición actual en el archivo y poder modificarla. Para obtener la posición actual se utiliza archivo.tell(), que indica la cantidad de bytes desde el comienzo del archivo.

Para modificar la posición actual se utiliza archivo.seek(inicio, desde) , que permite desplazarse una cantidad inicio de bytes en el archivo, contando desde el comienzo del archivo, desde la posición actual o desde el final.


Copyright (c) 2011-2014 Rosita Wachenchauzer, Margarita Manterola, Maximiliano Curia, Marcos Medrano, Nicolás Paez. La copia y redistribución de esta página se permite bajo los términos de la licencia Creative Commons Atribución - Compartir Obras Derivadas Igual 3.0 siempre que se conserve esta nota de copyright.