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 se realiza una lista en Python basada en una palabra clave dentro de un archivo .txt?

La siguiente lista es un ejemplo de una salida numérica de la cual necesito extraer datos. Está en forma de un archivo .txt y estoy tratando de crear una lista en Python que busque una cadena basada en una palabra clave y use los caracteres de esa cadena para hacer la lista.

Específicamente, estoy tratando de buscar “PLT” como palabra clave en la fila WorkOrder1 y hacer una lista de los números que le siguen. He buscado y buscado, pero lo único que encuentro es cómo convertir todo un archivo en una lista y no elementos específicos dentro del archivo. Cualquier ayuda sería apreciada.

Código que he escrito hasta ahora:

F_WO=[] 
f_baseplate.append(pd.read_csv(r'\\filepath{}' .format(r'\\'+str(filelist[i][0][0:6])+'\\'+filelist[i][0][0:len(filelist[i][0])-4]+'.txt'), delimiter='\\t',skiprows=36,engine='python',nrows=1,header=None,usecols=[1],index_col=False))

Lo que necesito es una lista generada a partir de los caracteres después de la palabra clave descrita anteriormente. Quiero desechar el código que tengo hasta ahora, ya que sé que hay una forma más simple de hacer esto. Gracias por la ayuda, Kris.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para extraer datos de un archivo .txt en Python basado en una palabra clave y crear una lista de los caracteres después de esa palabra clave, puedes usar el siguiente código:

    # establecer la palabra clave a buscar
    keyword = 'WorkOrder1:'
    
    # abrir el archivo y leer su contenido
    with open('file.txt', 'r') as f:
        data = f.readlines()
    
    # iterar a través de cada línea del archivo
    for line in data:
        # verificar si la palabra clave está en la línea
        if keyword in line:
            # obtener la subcadena después de la palabra clave
            num_str = line.split(keyword)[1].strip()
            # eliminar cualquier carácter no numérico de la subcadena
            num_str = ''.join(c for c in num_str if c.isdigit())
            # convertir la subcadena en una lista de enteros
            num_list = [int(c) for c in num_str]
            # imprimir la lista resultante
            print(num_list)
    

    Este código abre el archivo file.txt, lee su contenido en una lista de cadenas y luego itera a través de cada línea del archivo. Para cada línea, verifica si la palabra clave (WorkOrder1:) está en la línea. Si lo está, obtiene la subcadena después de la palabra clave, elimina cualquier carácter no numérico de la subcadena, convierte la subcadena resultante en una lista de enteros y luego imprime la lista.

    Ten en cuenta que este código asume que los caracteres después de la palabra clave son todos numéricos y que solo hay una instancia de la palabra clave en el archivo. Si estas suposiciones no son válidas para tu caso de uso específico, es posible que debas modificar el código en consecuencia.

Comments are closed.