Procesamiento de textos con Python

Si los lenguajes de programación fueran herramientas del mundo físico, python sería el equivalente a una navaja suiza. Es un lenguaje extremadamente versátil y enfocado a la utilidad (su parser viene de serie con Mac OSX, y es compatible con .NET, todo sea dicho), y os traigo un ejemplo de ello.

Por motivos de trabajo surgió la necesidad de procesar una lista de elementos que me proporcionaban en un txt con el siguiente formato.

elem1
elem2
elem3
...

y así 400 elementos.

había que agregar un parámetro en la cabecera y al final de cada línea, así como una cabecera y un fin del fichero, y guardarlo con un formato distinto.

Es una operación que se puede realizar manualmente aunque es un poco tediosa, con lo cual recurrí a python (que me había sido de gran utilidad en ocasiones anteriores) y pude procesarlo en 5 min (4:55 para escribir el código, 5s para generar el fichero).

El código empleado de python fue el siguiente, no tiene demasiada ciencia, abrir un archivo, recorrerlo linea a linea, y guardar en un segundo archivo la línea con el campo anterior y el siguiente (que en este caso era un identificador):


#!/usr/bin/env python
import sys
import os

def main():
    i = open('in.txt')
    o = open('out.php','w')
    o.write("<?php $data = array(\n")
    counter = 1
    for line in i:
        data = line.split("\n")
        o.write( str(counter) + '=> "' + data[0] + '",\n')
        counter +=1;
    o.write(");\n?>")

if __name__ == '__main__':
    main()

Es importante recalcar la importancia de los tabuladores, ya que python usa este sistema para indentar el código, ni llaves, ni begin… end, solamente tabuladores, lo cual lo hace más sencillo, si cabe, y si sabemos qué estamos escribiendo, claro.

Si quereis más información podeis consultar la web del lenguaje: python.org

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s