post thumbnail

Python desde Cero: Manejo de Archivos

Publicado Por: Carlos Picca, El 14/08/2013


Detalles del Curso:

Dificultad: Novato

Duración: 20 min


Más artículos en Python desde Cero

Este es el artículo Manejo de Archivos de la serie Python desde Cero - Mostrar todos

  1. Instalación & Configuración
  2. Variables, Operadores y Estructuras de Control
  3. Funciones
  4. Módulos
  5. Clases, Atributos y Métodos
  6. Bases de Datos
  7. Manejo de Archivos

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:

Modos Descripción
r Abre un archivo de sólo lectura. El puntero del archivo se coloca en el principio del archivo. Este es el modo predeterminado.
rb Abre un archivo de sólo lectura en formato binario.
r+ Abre un archivo para lectura y escritura. El puntero del archivo estará en el principio del archivo.
rb+ Abre un archivo para la lectura y la escritura en formato binario. El puntero del archivo estará en el principio del archivo.
w Abre un archivo para escribir solamente. Sobrescribe el archivo si el archivo existe. Si el archivo no existe, se crea un nuevo archivo para escritura.
wb Abre un archivo para escribir sólo en formato binario. Sobrescribe el archivo si el archivo existe. Si el archivo no existe, se crea un nuevo archivo para escritura.
w+ Abre un fichero para escritura y lectura. Sobrescribe el archivo existente si existe el archivo. Si el archivo no existe, se crea un nuevo archivo para la lectura y la escritura.
wb+ Abre un archivo, tanto para la escritura y la lectura en formato binario. Sobrescribe el archivo existente si existe el archivo. Si el archivo no existe, se crea un nuevo archivo para la lectura y la escritura.

¿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:

Atributo Descripción
objeto_archivo.closed Devuelve true si el archivo está cerrado, false en caso contrario.
objeto_archivo.mode Devuelve el modo de acceso con el que se abrió el archivo.
objeto_archivo.name Devuelve el nombre del archivo.

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...!


¿Te ha gustado esta publicación?

Compártela:

Por Carlos Picca

Conoce más sobre este autor aquí


comments powered by Disqus