El otro día necesité eliminar lineas con un determinado formato de un archivo de texto, el archivo tenia más de 12 millones de lineas así que descarté hacerlo a mano y tiré de código.

Aquí dejo la función que copia un archivo linea a linea descartando las lineas que coincidan con el parámetro pasado.

def deleteline(filein, fileout, slinea):
    # copia un archivo eliminando en la copia las lineas que coinciden con slinea
    fin = open(filein, "r")
    fout = open(fileout, "w")
    for linea in fin:
        if(slinea!=linea):
            fout.write(linea)
    fout.close()
    fin.close()

Ejemplo de llamada que eliminará todas las lineas «0|0||NULL|||0|NULL» de la copia:

deleteline("c:/temp/regprod20180924.dat", "c:/temp/regprod20180924_c.dat", "0|0||NULL|||0|NULL")

En mi caso sirvió tal y como está, el siguiente paso es adaptarlo para que acepte carácteres comodín.

Funciona con cualquier tamaño de archivo.

 

Saludos!

 

Deja tu comentario