Python - Comparacion palabras

 
Vista:
sin imagen de perfil
Val: 11
Ha disminuido su posición en 7 puestos en Python (en relación al último mes)
Gráfica de Python

Comparacion palabras

Publicado por marta (7 intervenciones) el 03/04/2018 12:16:00
Buenas, tengo un texto en un archivo con varios párrafos que siguen la misma estructura (nombre:xxxx, apellidos:xxxx, dni:xxxxx) y me gustaria saber cómo comparar los dni para saber si hay un parrafo igual a otro y eliminarlo. Alguna idea?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de abzerox
Val: 425
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Comparacion palabras

Publicado por abzerox (109 intervenciones) el 04/04/2018 09:19:05
Hola, marta te comparto una solución bien básica pero funcional la cual puede servirte de base y puedes mejorar. Fijate que genera un nuevo archivo si lo que queres es el mismo solo tenes que cambiar el nombre de este.

1
2
3
4
5
6
7
8
9
10
with open('users.txt', 'r') as f:
        users_dni = set() # guardo temporalmente los DNI
        users = []
        for line in f.readlines():
            dni = line.replace('\n','').split(',')[2].split(':')[1] # recupero el DNI de la linea actual
            if dni not in users_dni:
                users_dni.add(dni)
                users.append(line)
    with open('users_without_repeat.txt', 'w') as f:
        f.writelines(users)

Nos comentas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 11
Ha disminuido su posición en 7 puestos en Python (en relación al último mes)
Gráfica de Python

Comparacion palabras

Publicado por marta (7 intervenciones) el 04/04/2018 09:41:44
Gracias! También he pensado en hacer un "re.findall" y comparar mediante array. Pero éste parece más sencillo. Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar