lunes, 26 de abril de 2010

Limpiar ficheros en Python

¿No os molestan los ficheros, en general de código fuente, que están llenos de espacios al final de las líneas (los llamados trailing spaces) y otras degeneraciones varias: tabuladores mezclados con espacios normales, fines de línea estilo MS-DOS (retornos de carro) mezclados con otros UNIX, etc.? A nosotros sí.

Este es un problema que surge cuando un equipo trabajan sobre los mismos ficheros de texto, cada uno con su editor, en su sistema operativo... y entre Álvaro, Sebas y yo nos hemos propuesto solucionarlo.

Para ello, hemos creado un script en Python que toma como argumentos una lista indeterminada de ficheros y los "limpia". En concreto:

  • Elimina espacios y tabuladores al final de todas las líneas.
  • Elimina los retornos de carro estilo MS-DOS, para homogeneizarlos y que se vean "bonitos" en todos los entornos.
  • Opcionalmente, por medio del paso de un parámetro extra, se sustituyen los tabuladores de principio de línea por 4 espacios.
El uso es bien sencillo: 
python sanitize_nl.py [--retab] <fichero1> [<fichero2> ...]
...y listo. Ficheros limpitos y sin problemas.

Podeis descargarlo de aqui

4 comentarios:

  1. Muy bueno, se puede cambiar --retab por --rehab para que arregle también el código?

    ResponderEliminar
  2. Con el tiempo que hace que tenemos estos problemas lo raro es que tardaseis tanto en hacer algo así.

    buen trabajo ;)

    ResponderEliminar
  3. Tengo una versión en Perl...

    Por cierto Pedro, cuándo publicas algo?

    ResponderEliminar
  4. Tiene el "bug" de añadir un retorno de carro al final de las líneas, Álvaro tiene/tendrá una versión sin ese "problema".

    Igual alguien la sube...

    ResponderEliminar