diff --git a/proyecto/filtrado.py b/proyecto/filtrado.py index ae30aee..d3aff13 100644 --- a/proyecto/filtrado.py +++ b/proyecto/filtrado.py @@ -3,9 +3,10 @@ from normalizacion import * def filtrar_telefono(fichero, tel): f = open(fichero, "r", encoding="utf-8") + tel_n = normalizar_telefono(tel) for i in f.readlines(): - telefono = i.split(";")[0] - if telefono.strip() == tel: + telefono = normalizar_telefono(i.split(";")[0]) + if telefono.strip() == tel_n: print(i) else: continue diff --git a/proyecto/main.py b/proyecto/main.py index 11f45a5..9d14b71 100644 --- a/proyecto/main.py +++ b/proyecto/main.py @@ -46,23 +46,25 @@ def main(): normalizar(fichero, formato_fecha, formato_coordenadas) elif '-sphone' in argv: - telefono = int(argv[argv.index('-sphone') + 1]) + telefono = argv[argv.index('-sphone') + 1] fichero = argv[argv.index('-sphone') + 2] - filtrar_telefono(telefono, fichero) + filtrar_telefono(fichero, telefono) elif '-snif' in argv: nif = argv[argv.index('-snif') + 1] fichero = argv[argv.index('-snif') + 2] - filtrar_nif(nif, fichero) + filtrar_nif(fichero, nif) elif '-stime' in argv: # convertir entre formatos desde = argv[argv.index('-stime') + 1] hasta = argv[argv.index('-stime') + 2] fichero = argv[argv.index('-stime') + 3] print("stime") - except FileNotFoundError as e: - print(e) - exit(1) + + else: + exit(1) + except: + exit(2) diff --git a/proyecto/normalizacion.py b/proyecto/normalizacion.py index 56d5a16..1a2cadd 100644 --- a/proyecto/normalizacion.py +++ b/proyecto/normalizacion.py @@ -29,7 +29,7 @@ def normalizar_instante(instante, formato): if not d['segundo'].isdigit(): d['segundo'] = '00' - return f"{d['hora']}:{d['minuto']}:{d['segundo']} {d['dia']}/{d['mes']}/{d['año']}" + return f"{d['hora']:0>2}:{d['minuto']}:{d['segundo']} {d['dia']:0>2}/{d['mes']:0>2}/{d['año']}" def normalizar_telefono(telefono): @@ -44,16 +44,17 @@ def normalizar_coordenada(coordenada, formato): def normalizar(fichero, formato_fecha, formato_coordenadas): try: - f = open(fichero, 'r') + f = open(fichero, 'r', encoding='utf-8') except: exit(1) n = 0 for i in f.readlines(): telefono, nif, instante, coordenada, producto, precio = i.split(";") - instante = normalizar_instante(instante.strip(), 1) + instante = normalizar_instante(instante.strip(), formato_fecha) telefono = normalizar_telefono(telefono.strip()) - coordenada = normalizar_coordenada(coordenada.strip(), 3) - print(instante, telefono, coordenada) + n_coordenada = normalizar_coordenada(coordenada.strip(), formato_coordenadas) + if n_coordenada is None: + continue n += 1 print(n) diff --git a/proyecto/validacion.py b/proyecto/validacion.py index 44aedae..7939caa 100644 --- a/proyecto/validacion.py +++ b/proyecto/validacion.py @@ -91,8 +91,8 @@ def gradoDecimal(grados,minutos,segundos): def validarCoordenada(cadena, form): - if P.fullmatch(): - M = P.fullmatch() + if P.fullmatch(cadena): + M = P.fullmatch(cadena) if M.group("Grados1"): grados1 = M.group("Grados1") grados2 = M.group("Grados2") @@ -153,7 +153,7 @@ def validarEntrada(entrada): tel = validarTelefono(telefono.strip()) dni = validarDni(dni.strip()) fecha = validarInstante(fecha.strip()) - coordenadas = validarCoordenada(coordenadas.strip()) + coordenadas = validarCoordenada(coordenadas.strip(), 1) valores = { 'telefono': tel, @@ -166,4 +166,4 @@ def validarEntrada(entrada): for k in valores.keys(): if valores[k] is None: return None - return valores + return valores \ No newline at end of file diff --git a/proyecto/variables.py b/proyecto/variables.py index 30701c1..f61cb2b 100644 --- a/proyecto/variables.py +++ b/proyecto/variables.py @@ -17,5 +17,5 @@ D = re.compile(d, flags=re.I|re.M) i = r"((?P0{3}[1-9]|\d{4})-(?P0\d|1[0-2])-(?P[0-2]\d|3[01])\s+(?P[0-1]\d|2[0-4]):(?P[0-5]\d))|((?Pjanuary|february|march|april|may|june|july|august|september|october|november|december)\s+(?P\d|[12]\d|3[01]),\s+(?P0{3}[1-9]|\d{4})\s+(?P[1-9]|1[0-2]):(?P[0-5]\d)\s+(?P[ap]m))|((?P[01]\d|2[0-3]):(?P[0-5]\d):(?P[0-5]\d)\s+(?P[0-2]\d|3[01])/(?P0\d|1[0-2])/(?P0{3}[1-9]|\d{4}))" I = re.compile(i, flags=re.IGNORECASE) -R = r"( *(?P([0-2][0-9][0-9])|(3[0-5][0-9]))(?P[0-6][0-9])(?P[0-6][0-9]\.\d{4})(?P(N|S))(?P([0-2][0-9][0-9])|(3[0-5][0-9]))(?P[0-6][0-9])(?P[0-6][0-9]\.\d{4})(?P(W|E)) *)|( *(?P((1[0-9][0-9])|(2[0-9][0-9])|(3[0-5][0-9])|\d{2}|\d{1}))° *(?P([0-5][0-9])|[0-9])' *(?P(([0-5][0-9])|[0-9])\.\d{4})\" *(?P(N|S)) *, *(?P((1[0-9][0-9])|(2[0-9][0-9])|(3[0-5][0-9])|\d{2}|\d{1}))° *(?P([0-5][0-9])|[0-9])' *(?P(([0-5][0-9])|[0-9])\.\d{4})\" *(?P(W|E)) *)|( *((?P[+|\-| ])(?P(([1-8]?[0-9])\.\d+)|90)) *, *((?P[+|\-| ])(?P([1][1-7][1-9]\.\d+)|([1-8]?[0-9]\.\d+))|90) *)" +R = r"( *(?P([0-2][0-9][0-9])|(3[0-5][0-9]))(?P[0-6][0-9])(?P[0-5][0-9]\.\d{4})(?P(N|S))(?P([0-2][0-9][0-9])|(3[0-5][0-9]))(?P[0-5][0-9])(?P[0-5][0-9]\.\d{4})(?P(W|E)) *)|( *(?P((1[0-9][0-9])|(2[0-9][0-9])|(3[0-5][0-9])|\d{2}|\d{1}))° *(?P([0-5][0-9])|[0-9])' *(?P(([0-5][0-9])|[0-9])\.\d{4})\" *(?P(N|S)) *, *(?P((1[0-9][0-9])|(2[0-9][0-9])|(3[0-5][0-9])|\d{2}|\d{1}))° *(?P([0-5][0-9])|[0-9])' *(?P(([0-5][0-9])|[0-9])\.\d{4})\" *(?P(W|E)) *)|( *((?P[+\- ]?)(?P(([1-8]?[0-9])\.\d+)|90)) *, *((?P[+\- ]?)(?P([1][0-7][0-9]\.\d+)|([1-9]?[0-9]\.\d+))|90) *)" P = re.compile(R)