last day (15 days later) » 

8:58 PM
Hola bro
Estas por acá
 
Sip!
 
Te pido una disculpa si no me he explicado bien bro
 
No pasa nada, yo me disculpo por no entender...
 
PRIMER ARCHIVO
20120117;974112268;0;220
20191102;991952999;0;220
20120117;967174522;0;215
SEGUNDO ARCHIVO
219820XXX
219821XXX
219822XXX
219823XXX
219824XXX
219825XXX
219826XXX
222000XXX
222001XXX
222002XXX
222003XXX
222004XXX
222005XXX
222006XXX
222007XXX
222008XXX
222009XXX
222010XXX
222011XXX
222012XXX
222013XXX
222014XXX
222015XXX
222016XXX
222017XXX
222018XXX
222019XXX
222020XXX
222021XXX
222022XXX
222023XXX
222024XXX
222025XXX
222026XXX
222027XXX
222028XXX
222029XXX
222030XXX
222031XXX
222032XXX
222033XXX
222034XXX
222035XXX
222036XXX
222037XXX
222038XXX
222039XXX
222040XXX
222041XXX
222042XXX
Te pase el segundo archivo completo, el del primer archivo con esos 3 registros podemos hacer las pruebas.
Bro te puedo agregar a un repositorio de python?
 
Dale, justo pensaba en ver el codigo!
 
9:03 PM
Me regalas tu correo bro
 
Bueno, esta bien. dantesan01@gmail.com
 
Vale. Un momento.
Avísame por favor si te llego la invitación.
 
Dale, te aviso!
 
Sino, intenta acceder acá y si te deja ver el espacio de trabajo.
 
Ya me dio acceso!
 
9:10 PM
Vale bro.
Fijate ahora mismo solo estoy leyendo las 2 bases
Si te das cuenta el archivo1.txt tiene los numeros de telefonos completos con todos sus digitos bien
 
Y lo que queres hacer es completar con el contenido del archivo 2
?
 
Que es diferente en el archivo2.txt los numeros de telefonos tienen unas XXX, XXXX no están completos
Así es por ejemplo
Este numero de telefono: 974112268
Existe en el archivo2.txt pero no está completo, entonces la idea es rellenar en la base2 los numeros restante
Este es el numero como esta en el archivo2.txt
97411XXXX
Numero original = 974112268

Numero incompleto = 97411**2**XXX
Ahí le he agregado el numero siguiente que sería 2 y así sucesivamente 2,6,8
Si me entiendes un poco mejor hermano?
 
Si, creo que te entiendo mejor
Mejor hago las pruebas localmente
 
Si bro no te preocupes
Yo voy a intentar igual hacerlo ahí en el entorno
 
9:34 PM
Este còdigo hace lo que necesitas?
with open("archivo1.txt") as file1:
    with open("archivo2.txt") as file2:
        for line in file1:
            fecha, telefono1, *otros = line.rstrip("\n").split(";")

            for line in file2:
                telefono2 = line.rstrip("\n").rstrip("Xx")

                if(telefono1.startswith(telefono2)):
                    break

            print(telefono1, telefono2)
 
Un momento lo pruebo bro
 
Ups, recien me doy cuenta de un error
Sucede cuando no machea con ninguno
 
Si bro
 
with open("archivo1.txt") as file1:
    with open("archivo2.txt") as file2:
        for line in file1:
            fecha, telefono1, *otros = line.rstrip("\n").split(";")

            for line in file2:
                telefono2 = line.rstrip("\n").rstrip("Xx")

                if(telefono1.startswith(telefono2)):
                    break
            else:
                print(telefono1, "no machea con ninguno")
                continue

            print(telefono1, telefono2)
Prueba este
Te sirviò?
 
Voy
 
9:39 PM
Y te sirve para avanzar?
 
Tengo una duda
991952999 92260
967174522 92260
 
Si?
 
Porque aparece así bro
 
Me acabo de dar cuenta.
 
Los numeros no concuerdan
 
9:45 PM
La verdad no entiendo por que falla...
 
Una pregunta, estas tomando los primeros 4 o 5 digitos de los numeros?
 
Lo que hago es quitarle las x al final y probando si el telefono completo empiesa con el incompleto
 
Y si se le pasa que busque X por X
 
Las x pueden estar en medio del numero?
 
219820XXX 219820
219821XXX 219821
219822XXX 219822
 
9:48 PM
Por que eso hace que deba replantear el codigo
 
No
Siempre las X están al final
Por lo que he visto son XXX y XXX
 
Eso lo hace mas facil c:
 
3 XXX y 4 XXXX
 
Yo tambien lo he visto asi
Arregle un pequeño error en la iteracion
Bueno, en realidad grande
Solo revisaba el segundo archivo una vez
Capas que ahora funciona bien
with open("archivo1.txt") as file1:
    with open("archivo2.txt") as file2:
        lineas_file2 = file2.readlines()

        for line in file1:
            fecha, telefono1, *otros = line.rstrip("\n").split(";")

            for line in lineas_file2:
                telefono2 = line.rstrip("\n").rstrip("Xx")

                if(telefono1.startswith(telefono2)):
                    break
            else:
                print(telefono1, "no machea con ninguno")
                continue

            print(telefono1, telefono2)
 
Ah ok bro lo voy a probar
Una pregunta
if(telefono1.startswith(telefono2)):
                    break
            else:
Eso van en conjunto verdad
 
9:52 PM
No, el else va a la misma altura que el for!
Te recomiendo ponerlo a la misma altura que el for y ejecutarlo de nuevo
 
Vale voy
 
Parece funcionar bien c:
Pero por las dudas podrías probarlo con más numeros porfa??
 
Si, mira voy agregarle un campo adicional al archivo2.txt te parece una columna mas
Que es la que necesito capturar de ese archivo
 
Si agregas una columna nueva hay que modificar parte del código
 
Lo llame archivo2New.txt
El siguiente valor es el que me interesa capturar
Una vez que los numeros hagan hecho macheo
 
9:58 PM
Dale, hago esa parte y el resto queda en tus manos!
 
Si hermano ya estoy tambien agregando mas datos en el archivo1.txt
 
Probá este código
Pero antes
Reemplasa el contenido de archivo2 por el nuevo
with open("archivo1.txt") as file1:
    with open("archivo2.txt") as file2:
        lineas_file2 = file2.readlines()

        for line in file1:
            fecha, telefono1, *otros = line.rstrip("\n").split(";")

            for line in lineas_file2:
                telefono2, *otros = line.rstrip("\n").split(";")
                telefono2 = telefono2.rstrip("Xx")

                if(telefono1.startswith(telefono2)):
                    break
            else:
                print(telefono1, "no machea con ninguno")
 
Voy bro
 
Que tal?
 
Si mi hermano creo que está funcionado de maravilla
 
10:02 PM
Me alegro c:
Pero
Dos cosas antes de que termine de ayudar
Primero, tuviste en cuenta la posibilidad de que dos numeros empiecen con lo mismo
por ejemplo 12345678 y 12349101
Ambos empiesan con 1234
 
Si bro si lo mire
Hay numeros que empiezan con esos rangos
Eso puede ser un problema?
De hecho en el excel grande que tengo hay numeros que estan asi con correlativo iguales
 
En ese caso, mi bucle elegira el primer numero que encuentre que empiese con eso
Ya eso no es cuestion de programacion, ni una persona sabria que numero elegir si dos o mas empiesan con lo mismo
 
Oh vaya
Y una pregunta y en ese caso no se puede hacer que busque por cada X ?
 
No vale la pena... Lo que sabemos es que buscamos un numero de telefono que empiese por ejemplo con 1234, las x las podemos quitar por que lo que queremos saber es que empiese con eso.
Las x nunca están a mitad del numero, por lo que se pueden quitar tranquilamente
Solo al final
 
Ah ok bro te entiendo
Y una pregunta que pasaria en ese caso si uno de estos 2 numeros
12345678 y 12349101
Tienen diferente campo 215 y 219
Solo tomara el primero?
 
10:09 PM
Exacto
El primero que encuentre
 
Oh vaya pero entonces el 219 se perdería
Eso puede ser un problema
 
Podemos decirle al programa "dame todos los que empiecen con tal numero"
Y generar una lista de listas
Es lo mejor que se me ocurre
 
222080XXX
222081XXX
222082XXX
222083XXX
222084XXX
222085XXX
222086XXX
222087XXX
222088XXX
222089XXX
Con esos correlativos así no deberia haber problema verdad
 
El problema que planteaba era si habia dos numeros que empiezen por lo mismo en archivo1
 
Si, eso puede pasar..
 
10:12 PM
por ejemplo estos dos 999951256, 999923693 y que busques numeros que empiecen con 9999
En dicho caso, mi codigo elegiria el primero que encuentre
 
Ah ok bro entiendo
 
Solo queria ponerte al tanto de ese detalle
 
Agradecido hermano lo voy a probar con toda la data completa para ver como me va
 
Dale!
Pero antes
Entiendes lo que hace el código?
 
Si bro si lo entiendo
telefono2, *otros = line.rstrip("\n").split(";")
Una pregunta *otros significa que va almacenar todo lo demas que no sea telefono2 del archivo verdad
 
10:16 PM
Exactamente!
Se guarda ahi todo lo que viene despues de telefono2
 
Vale vale
 
Bueno, un placer ayudar nwn
 
Gracias bro!! Cuidate
 
Igualmente!
 

last day (15 days later) »