[Python-es] Buscar palabras en un archivo

Jose Caballero jcaballero.hep en gmail.com
Jue Jun 26 16:24:20 CEST 2014


Hola,

creo que te estas complicando demasiado la vida. Los arboles ya no te
dejan ver el bosque.
Sin embargo, al menos estas intentando cosas. Pones esfuerzo de tu
parte. Ya es algo.

El primer problema por el que es dificil ayudarte es que no nos has
dicho (o no lo recuerdo) como son los ficheros.
Nos dices que buscas en uno las palabras que hay en el otro. Pero ese
otro, como es? Una lista de palabras, en una fila? En una columna? o
no tiene "formato"?

He decidido asumir que es el caso 2, las palabras estan en una
columna. Si no es correcto, al menos el codigo que te muestro te puede
dar una pista.


$ cat list
palabra1
palabra2
palabra3

$ cat text
lasfas palabra1 ;asflasf f
lafa palabra2  lafasfd  palabra3 afasdf
alsdfasdfaf
lasfdasfd asfdadsf afa fdaf
palabra3 afasfdas palabra2
afads asdfas asfas fafas

$ cat kk.py
# quick and dirty solution

list_words = []
list_lines = []

f1 = open('list')
for line in f1.readlines():
    # remove the trailing \n
    list_words.append(line[:-1])

f2 = open('text')
for line in f2.readlines():
    # remove the trailing \n
    list_lines.append(line[:-1])

for line in list_lines:
    for word in list_words:
        if word in line:
            print line
            # one word per line is enough
            break


Más información sobre la lista de distribución Python-es