[Python-es] Problemas con el modulo re
alito s
alito81 en gmail.com
Jue Mar 1 21:53:08 CET 2012
Hola de nuevo:
Ya tengo respuesta a mi pequeño dilema.
Les pongo el código y espero que a alguien le sirva en un futuro.
match1 = re.compile(r"^(>)(.+)(\n)(UGAGGUAGUAGGUUGUAU)(\w+)", re.MULTILINE)
for match in match1.finditer(myfile):
sequence = match.group()
print sequence
El detalle estaba en que cuando uno quiere buscar en diferentes líneas,
tiene que utilizar MULTILINE, jeje...
Si alguien tiene alguna sugerencia, es bienvenida.
Saludos!
2012/3/1 alito s <alito81 en gmail.com>
> Hola a tod en s:
> Me gustaría preguntarles una cosa, quizás muy básica pero llevo un ratito
> rompiendome la cabeza. Resulta que estoy buscando una secuencia en
> particular en un formato denominado fasta. Mi problema viene cuando quiero
> que me ponga el nombre de la secuencia y además lo que estoy buscando en la
> secuencia.
> Por ejemplo, el archivo fasta consta de un ">" dónde se encuentra el
> nombre de la secuencia, seguido por un "\n" y posteriormente la secuencia
> como tal.
>
> "Ejemplo de formato fasta"
> >hsa58962351 | 4568
> CUGUACAGCCUCCUAGCUUUCC
>
> Hice el siguiente programa:
>
> inp = open(files, 'r')
> myfile = inp.readlines()
> for line in myfile:
> match1 = re.search(r'(>)(.*)(\n)', line)
> match2 = re.search(r'(UGAGGUAGUAGGUUGUAU)(\w+)', line)
>
> # Es aqui donde ya me hago pelotas, porque lo que quiero es que me imprima
> en la pantalla tanto el nombre de la secuencia como la línea donde entontro
> mi secuencia determinada (match2).
> # Entonces pongo algo así:
> if match2:
> print match1.group() + "\n"
> print match2.group() + "\n"
>
> # Evidentemente aqui tengo un error garrafal porque match2 no lo
> encuentra, simplemente porque no se encuentra en la misma línea dónde busco
> match1. Entonces decidi hacer lo siguiente:
>
> for line in myfile:
> match1 = re.search(r'(>)(.*)(\n)(UGAGGUAGUAGGUUGUAU)(\w+)', line)
>
> Pero tampoco me funciona. Así que después de contarles mi trágica historia
> quería ver si alguien de ustedes sabe como buscar en varias líneas o como
> imprimir mis busquedas (el caso en donde busco match1 y match2) en la
> pantalla.
> Gracias.
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20120301/fec430da/attachment.html>
Más información sobre la lista de distribución Python-es