Leer archivos de texto «plano» o crearlos para volcar información como logs o exports de un sistema bien como copia de seguridad o para una posterior importación a otro sistema es una tarea bastante frecuente.Cuando un desarrollo empieza a crecer, cualquier ayuda es poca y por mucho que utilicemos el depurador hay momentos en los que es necesario poder seguir nuestra propia traza de la ejecución en texto.

Por otro lado, una vez la aplicación pasa a producción, es útil disponer de un registro para cuando algo falla, los usuarios finales son los mejores betatester, hacen cosas totalmente imprevisibles y tarde o temprano algo da error.

Objeto File de Python

Para trabajar con archivos, Python nos brinda el objeto File.

Hay miles de entradas en internet que lo analizan al detalle, poner en Google «Python File Object» o acceder a https://docs.python.org/2.4/lib/bltin-file-objects.html para ver todos los métodos en profundidad.

Aquí vamos a ir al grano, nos interesa leer y escribir texto, utilizaremos open(), readlines(), write() y close().

Escribiendo archivos de texto desde Python

Abrir, escribir y cerrar. No hay más.

spathlog = ".\miarchivodebug.log"
flog = open(spathlog, "w")
flog.write("Esto es un ejemplo de escritura de archivo\n")
flog.write("Segunda linea de depuración\n")
flog.write("Tercera linea ...\n")
flog.write("Altaruru!\n")
flog.close()

Abrimos el archivo con open(), como parámetros pasamos el nombre del archivo y el tipo de apertura de fichero, «w» para escritura (write) y «r» para lectura (read). Hay una tercera opción «a» para añadir lineas (append), también de escritura.

   flog = open(spathlog, «w»)

Si el archivo no existe se crea, si existiera, y esto es importante, elimina todo el contenido del mismo.

* Si el archivo existiera y se quiere conservar la información del mismo escribiendo a partir de la última linea utilizar «a» append.

Open devuelve un objeto file, en nuestro caso lo llamamos flog.

Escribimos el texto con write:

   flog.write(«Esto es un ejemplo de escritura de archivo\n»)

write no escribe saltos de carro, por lo que si queremos tendremos que indicárselo nosotros con \n

Por último, sólo queda cerrar el archivo con close:

flog.close()

Leyendo archivo de texto plano

Abrir, leer, cerrar.

flog = open (spathlog,"r")

for slinea in flog.readlines():
    slinea=slinea.rstrip('\n') # quitamos el salto de linea
    print(slinea)

flog.close()

Abrimos el archivo indicando modo lectura «r»

Leemos todas las lineas de manera secuencial, para ello tenemos el método readlines(), lo utilizamos en un bucle for e irá cargando en cada ciclo una linea tras otra de forma secuencial. Cuando termine saldrá del bucle.

Por último, cerramos el archivo con close().

 

Eso es todo, ya podéis leer y escribir archivos de texto. En futuras entradas veremos su uso en desarrollos más complejos y la flexibilidad que aporta trabajar con este tipo de archivos.

Saludos!

 

Un comentario sobre «Archivos de texto con Python»

  1. Rosa

    Muchas gracias por su aporte.

Deja tu comentario