Files
alf/proyecto/filtrado.py
2025-12-09 11:09:08 +01:00

56 lines
1.8 KiB
Python

from normalizacion import *
from validacion import validarCoordenada
from util import haversine, convertirSegundos
def filtrar_telefono(fichero, tel):
f = open(fichero, "r", encoding="utf-8")
tel_n = normalizarTelefono(tel)
for linea in f.readlines():
telefono = normalizarTelefono(linea.split(";")[0])
if telefono.strip() == tel_n:
print(linea, end='')
else:
continue
def filtrar_nif(fichero, nif):
f = open(fichero, "r", encoding="utf-8")
if D.match(nif) is None:
exit(2)
for linea in f.readlines():
n = linea.split(";")[1]
if n.strip() == nif:
print(linea, end='')
else:
continue
def filtrar_instante(inicio, fin, fichero):
f = open(fichero, "r", encoding="utf-8")
inicio = convertirSegundos(validarInstante(inicio))
fin = convertirSegundos(validarInstante(fin))
tupla_inicio = tuple([int(inicio[k]) for k in inicio.keys()])
tupla_fin = tuple([int(fin[k]) for k in fin.keys()])
for linea in f.readlines():
instante = linea.split(';')[2].strip()
if validarCoordenada(linea.split(';')[3].strip()) is None:
continue
instante = convertirSegundos(validarInstante(instante))
tupla_instante = tuple([int(instante[k]) for k in instante.keys()])
if tupla_inicio < tupla_instante < tupla_fin:
print(linea, end = '')
def filtrar_distancia(inicio, hasta, fichero):
inicio = validarCoordenada(inicio)
f = open(fichero, 'r', encoding="utf-8")
for linea in f.readlines():
coordenada = linea.split(';')[3].strip()
coordenada = validarCoordenada(coordenada)
if coordenada is None:
continue
if haversine(inicio, coordenada) < float(hasta) * 1000:
print(linea, end='')