es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo realizar la limpieza de datos en un archivo de texto?

Tengo un archivo de texto con muchas líneas, que incluyen palabras y números, aquí hay un ejemplo:

2021-12-06 05:07:09.266 INFO: ID adicional 1638301749791
2021-12-06 05:07:09.266 INFO: Encontrado
2021-12-06 05:07:09.267 INFO: ObjectStatus-ok factor 1163 factor cinco y seis calculado como antes mejor peso ID 1638301749796
2021-12-06 05:07:09.267 INFO: deshabilitado; computando el factor de peso de potencia del factor 19025.
2021-12-06 05:07:10.041 INFO: Escribió un gran factor 0.3568357342, Classificationfactortype-fail
2021-12-06 05:07:10.042 DEBUG: Duiu.0.0.2588650814
2021-12-06 05:07:10.743 INFO: Escribió .3254806495

Mi pregunta es ¿cómo puedo mantener las líneas que tienen las palabras “Classificationfactortype-fail” y “ObjectStatus-ok”, y eliminar todas las demás líneas? Me gustaría guardar el nuevo archivo de texto en el directorio.

Aquí está el código que escribí:

ans = []

with open('test.txt') as rf:
    for line in rf:
        line = line.strip()
        if "Classificationfactortype-fail" in line or "ObjectStatus-ok" in line:
          ans.append(line)

with open('extracted_data.txt', 'w') as wf:
    for line in ans:
        wf.write(line)
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para mantener solo las líneas que contienen las palabras “Classificationfactortype-fail” y “ObjectStatus-ok” y eliminar todas las demás líneas, puedes utilizar el siguiente código en Python:

    with open('input.txt') as f_in, open('output.txt', 'w') as f_out:
        for line in f_in:
            if 'Classificationfactortype-fail' in line or 'ObjectStatus-ok' in line:
                f_out.write(line)
    

    Este código abre el archivo de entrada (‘input.txt’) y lo lee línea por línea. Si una línea contiene alguna de las palabras “Classificationfactortype-fail” o “ObjectStatus-ok”, la escribe en un nuevo archivo (‘output.txt’). De esta manera, el nuevo archivo solo contendrá las líneas deseadas.

    Ten en cuenta que puedes cambiar los nombres de los archivos de entrada y salida para que coincidan con tu caso específico.

Comments are closed.