[pyar] Seleccionar elementos de un txt

Martin Chikilian slacklinucs en gmail.com
Mar Ene 31 19:39:18 ART 2012


Hola,

Una solución viable al problema de sacar todo lo unicode de tu archivo de
entrada es "engañar" a la función str.encode y en vez de pasarle un unicode
a convertir en bytestring le pasás un bytestring directamente y agarrás el
UnicodeDecodeError, eg:

*>>> 'ñ'.encode('utf-8')*
*Traceback (most recent call last):*
*  File "<stdin>", line 1, in <module>*
*UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 0:
ordinal not in range(128)*

De esta forma evitás usar el módulo re.

En tu código quedaría:

*infd = open('wordlist.txt')*
*outfd = open('wordlist_nuevo.txt', 'w')*
*for line in infd:*
*    try:*
*        line.encode('utf-8')*
*    except UnicodeDecodeError:*
*        pass*
*    else:*
*        outfd.write(line)*
*infd.close()*
*outfd.close()*

Saludos,

Martín

2012/1/31 Ivan Alejandro <ivanalejandro0 en gmail.com>

> OT: por si te sirve el tip, yo hubiera usado la consola directamente...
> cat wordlist | grep -vE "ñ|á|é|í|ó|ú" > wordlist2
>
> saludos
>
> 2012/1/31 Javier Castrillo <riverplatense en gmail.com>:
> >> Si sacar las palabras con caracteres acentuados y ñ equivale a
> >> quedarse con las que sólo tienen caracteres de la a a la z podés
> >> quedarte con las palabras que matcheen con esa expresión regular.
> >>
> >> pattern = re.compile("^\w+$")
> >>
> >> y comparás con
> >>
> >> if pattern.match(palabra):
> >> ...
> >
> > Impresionante, parseó 64000 palabras en menos de un pestañeo.
> > Muchas gracias, les dejo el código final:
> >
> >
> > Mil gracias nuevamente
> >
> > #! /usr/bin/python
> > # -*- coding:UTF-8 -*-
> >
> > import re
> >
> > f = open("wordlist.txt", "r")
> > n = open("wordlist_nuevo.txt", "w")
> > pattern = re.compile("^\w+$")
> >
> > while True:
> >    palabra = f.readline()
> >    if not palabra:
> >        break
> >    if pattern.match(palabra):
> >        n.write(palabra)
> > f.close()
> > n.close()
> >
> >
> > --
> > Javier Castrillo
> >
> > =========================================================
> > GNU / Linux User #242275
> >
> > Jabber: javier en nube.usla.org.ar
> > Blog: http://evitalinuxera.com.ar
> > Site:    http://javiercastrillo.com.ar
> > TCOS: http://argentina.tcosproject.org
> > PGP ID: 5BB08988
> > Twitter: @evitalinuxera
> > Identi.ca: @evitalinuxera
> > Skype: carapachense
> > =========================================================
> > Usá Software Libre
> > _______________________________________________
> > pyar mailing list pyar en python.org.ar
> > http://listas.python.org.ar/listinfo/pyar
> >
> > PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
> >
> > La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
>
>
> --
> ()  ascii ribbon campaign - against html e-mail
> /\  www.asciiribbon.org   - against proprietary attachments
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20120131/caedb95e/attachment.html>


More information about the pyar mailing list