Python desde Cero: Manejo de Archivos

Publicado el 14 agosto 2013 por Codehero @codeheroblog

Bienvenidos una vez más a Python desde Cero, curso en el cual aprendemos a programar sin conocimiento alguno. En el capítulo anterior, te enseñe todo lo relacionado con el módulo MySQLdb, en otras palabras, aprendimos a conectarnos a una base de datos MySql, a crear tablas, y a como insertar, obtener, modificar y eliminar registros de la base da datos usando el API de Python para BD. Si eres nuevo en este curso, te recomiendo que le eches un vistazo al capítulo anterior para que te pongas en contexto (Capítulo 6 – Bases de Datos)

Hoy, vamos a aprender todo lo relacionado con el manejo de archivos en Python, desde como abrirlo hasta como escribir y leer información del mismo.


¿Cómo abrimos un archivo?

Antes de que podamos leer o escribir un archivo, hay que abrirlo con la función de Python open(). Esta función crea un objeto archivo que se utiliza para llamar a otros métodos de apoyo asociados. Veamos cual es la sintaxis:

objecto_archivo = open(file_name [, access_mode][, buffering])

Describamos un poco los argumentos de la función:

  • file_name – Nombre del archivo que se desea acceder.
  • access_mode – Determina el modo en el que el archivo tiene que ser abierto, es decir. leer, escribir, etc. El modo de acceso de archivos por defecto es de lectura.
  • buffering – Si el valor de búfer se establece en 0, ningún almacenamiento temporal se llevará a cabo. Si el valor es 1, el búfer se realizara por linea.

Aquí está una lista con los diferentes modos de apertura de un archivo:


¿Cuáles son los atributos más importantes de un archivo?

Una vez que hemos abierto el archivo, podemos obtener la información relacionada a el mismo. Veamos una lista con todos los atributos más importantes relacionados al tipo de objeto:

Veamos un ejemplo sobre como utilizar todo lo que hemos visto hasta ahora:

#!/usr/bin/python

# Abrimos el archivo codehero.txt
fo = open("codehero.txt", "wb")
print "Nombre del archivo : ", fo.name
print "Cerrado o no : ", fo.closed
print "Modo de apertura : ", fo.mode

Si ejecutamos el script anterior debemos obtener el siguiente resultado:

Nombre del archivo:  codehero.txt
Cerrado o no :  False
Modo de apertura :  wb

¿Cómo cerramos un archivo?

Para cerrar un archivo usamos el método close(), el cual limpia cualquier información que no haya sido escrita y cierra el archivo. Después que este método es ejecutado no podemos ejecutar ninguna escritura.

Python automáticamente cierra el archivo una ves que la referencia del objeto es asignada a un nuevo archivo.

Es una buena practica hacer uso del método close() para cerrar los archivos una vez que terminemos de trabajar con ellos.

Veamos la sintaxis que debemos usar:

objecto_archivo.close();

Veamos como usar close() con un ejemplo:

#!/usr/bin/python

# Abrimos el archivo codehero.txt
fo = open("codehero.txt", "wb")
print "Nombre del archivo: ", fo.name

# Cerramos el archivo codehero.txt
fo.close()

Si ejecutamos el script anterior obtenemos:

Nombre del archivo:  codehero.txt

¿Cómo escribir un archivo?

En Python para escribir información en un archivo usamos el método write().

Es importante tener en cuenta que las cadenas de caracteres(strings) de Python pueden tener datos binarios y no sólo de texto.

El método write() no añade un carácter de nueva línea (‘\ n’) al final de la cadena.

Veamos la sintaxis para poder escribir en un archivo:

objecto_archivo.write(string);

Observemos que string es el texto que queremos escribir en el archivo.

Veamos como usar write() con un ejemplo:

#!/usr/bin/python

# Abrimos el archivo codehero.txt 
fo = open("/tmp/codehero.txt", "wb")
fo.write( "Codehero es una gran pagina para aprender a programar Python.\nSíguenos en @codeheroblog!!\n");

# Cerramos el archivo codehero.txt
fo.close()

Si ejecutamos el script anterior obtenemos:

Codehero es una gran pagina para aprender a programar Python.
Síguenos en @codeheroblog!!

¿Cómo leer un archivo?

En Python para leer información de un archivo usamos el método read().

Es importante tener en cuenta que las cadenas de caracteres(strings) de Python pueden tener datos binarios y no sólo de texto.

Veamos la sintaxis para poder leer un archivo:

objecto_archivo.read([count]);

Observemos que count es el numero de bytes a leer del archivo.

Veamos como usar read() con un ejemplo:

#!/usr/bin/python

# Abrimos el archivo codehero.txt 
fo = open("/tmp/codehero.txt", "r+")
str = fo.read(10);
print "La lectura es : ", str

# Cerramos el archivo codehero.txt
fo.close()

Si ejecutamos el script anterior obtenemos:

La lectura es : Codehero es

¿Cómo renombramos un archivo?

En Python para renombrar un archivo usamos el método rename().

Veamos la sintaxis para poder renombrar un archivo:

os.rename(current_file_name, new_file_name)

Observemos que current_file_name es el nombre del archivo que queremos renombrar y new_file_name es el nuevo nombre que le queremos dar.

Veamos como usar rename() con un ejemplo:

#!/usr/bin/python
import os

# Renombramos codehero.txt por codehero2.txt
os.rename( "codehero.txt", "codehero2.txt" )

¿Cómo removemos un archivo?

En Python para remover un archivo usamos el método remove().

Veamos la sintaxis para poder leer un archivo:

os.remove(file_name)

Observemos que file_name es el nombre del archivo que queremos remover.

Veamos como usar remove() con un ejemplo:

#!/usr/bin/python
import os

# Eliminamos el archivo codehero.txt
os.remove("codehero.txt")

Conclusión

En esta lección, aprendimos todo lo relacionado con el manejo de archivos en Python, desde como abrirlo hasta como escribir y leer información del mismo. Si tienes alguna pregunta, yo estaré feliz de responderte en los comentarios, además espero que te unas y le eches un vistazo a todo el resto de este curso.

Nos vemos en la próxima serie de Python, ¡Python Avanzado!

¡Hasta entonces…!