Autor Tema: Expresiones regulares, buscar en un archivo de texto.  (Leído 1224 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Picuino

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5878
    • Picuino
Re:Expresiones regulares, buscar en un archivo de texto.
« Respuesta #15 en: 04 de Noviembre de 2021, 15:24:29 »
El with termina una vez leído el archivo:

Código: Python
  1. import re
  2. import codecs
  3.  
  4. with codecs.open('Decretos.txt', 'r+', encoding='utf-8') as archivo:
  5.     datos = archivo.read()
  6.  
  7. lineas = datos.split('\n')
  8.    
  9. buscar = input("\n Ingrese lo que desea buscar...: ")
  10. print("\n============================================================")
  11. for linea in lineas:
  12.     if re.search(buscar, linea, re.IGNORECASE):
  13.         print(linea[4:])
« Última modificación: 04 de Noviembre de 2021, 16:15:40 por Picuino »

Desconectado Daniel1952

  • PIC16
  • ***
  • Mensajes: 127
Re:Expresiones regulares, buscar en un archivo de texto.
« Respuesta #16 en: 04 de Noviembre de 2021, 16:01:13 »
Gracias, buen dato para un principiante.-
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-

Desconectado Picuino

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5878
    • Picuino
Re:Expresiones regulares, buscar en un archivo de texto.
« Respuesta #17 en: 04 de Noviembre de 2021, 16:21:49 »
Otra forma de hacerlo es leyendo línea a línea el archivo.
Puede venir bien para archivos muy grandes que no quepan en la memoria.

Código: Python
  1. import re
  2. import codecs
  3.  
  4. buscar = input("\n Ingrese lo que desea buscar...: ")
  5. print("\n============================================================")
  6.  
  7. with codecs.open('Decretos.txt', 'r', encoding='utf-8') as archivo:
  8.     for linea in archivo:
  9.         if re.search(buscar, linea, re.IGNORECASE):
  10.             print(linea[4:].strip())

El strip() es para quitar el caracter de nueva línea '\n' que siempre hay al final.
« Última modificación: 04 de Noviembre de 2021, 16:25:27 por Picuino »

Desconectado Daniel1952

  • PIC16
  • ***
  • Mensajes: 127
Re:Expresiones regulares, buscar en un archivo de texto.
« Respuesta #18 en: 04 de Noviembre de 2021, 17:02:18 »
Por lo que pude notar con un print(al final) que lee lo necesario(según la búsqueda) y descarta el resto, ¿es así? Y otra pregunta, ¿de esta manera no estaría guardado el contenido(del archivo) en una lista, no seria reutilizable, me equivoco?.-
Lo que no me queda claro es si me vas entregando todo en cuotas o no entendiste mi consulta inicial, gracias Picuino.
Si ya esta todo te pido una última ayudita, ¿Cómo puedo hacer esto?

Código: Python
  1. ['100', [' Nadie te gritara si no le gritaste a nadie.', ‘Nadie te ofenderá si no ofendiste a nadie’]]
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-

Desconectado Picuino

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5878
    • Picuino
Re:Expresiones regulares, buscar en un archivo de texto.
« Respuesta #19 en: 04 de Noviembre de 2021, 17:17:25 »
Hola Daniel.
No te equivocas. La lista no se guarda.
No entiendo la duda que tienes al final.
« Última modificación: 04 de Noviembre de 2021, 17:30:54 por Picuino »

Desconectado Daniel1952

  • PIC16
  • ***
  • Mensajes: 127
Re:Expresiones regulares, buscar en un archivo de texto.
« Respuesta #20 en: 04 de Noviembre de 2021, 17:40:09 »
Para no poner los 6 100 guardar lo encontrado en una lista de lista/multilista, ayer había encontrado como separar el texto en 2 listas y ahora no lo encuentro.-
Si no lo entendes no importa ya aparecera, despreocupate.-
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-

Desconectado Daniel1952

  • PIC16
  • ***
  • Mensajes: 127
Re:Expresiones regulares, buscar en un archivo de texto.
« Respuesta #21 en: 04 de Noviembre de 2021, 18:49:04 »
Esto es lo que buscaba:

Código: Python
  1. cadena = "Estamos explicando el funcionamiento de split en Python"
  2. separador = " "
  3. separaciones = 1
  4. separado = cadena.split(separador, separaciones)
  5. print("Separado por espacios es:", separado)

En el bucle for grabar en una lista ['100', 'aquí las 6 línear’], lo estoy intentando. ☕☕☕
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-

Desconectado Picuino

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5878
    • Picuino
Re:Expresiones regulares, buscar en un archivo de texto.
« Respuesta #22 en: 05 de Noviembre de 2021, 06:11:19 »
Código: Python
  1. import re
  2.  
  3. texto = """100 Vamos a comenzar con una breve discusión acerca de terminología.
  4. 100 En una lección previa, dependiendo del sistema operativo de tu
  5. 100 computadora: Mac, Windows, Linux, viste cómo se envía información
  6. 100 a la ventana de “comando de salida” en tu editor de texto mediante
  7. 100 la utilización del comando print de Python.
  8.  
  9. 101 El lenguaje de programación Python es del tipo orientado a objetos.
  10. 101 Esto quiere decir que está construido alrededor de un tipo especial de
  11. 101 entidad, un objeto, que contiene a la vez datos así como una serie de
  12. 101 métodos para acceder y alterar los datos. Una vez que se crea un objeto
  13. 101 se puede interactuar con otros objetos.
  14.  
  15. 102 En el ejemplo de arriba vimos un tipo de objeto, la cadena (string)
  16. 102 “Hola Mundo”. La cadena es la secuencia de una serie de caracteres
  17. 102 encerrados entre comillas. Puedes escribir una cadena de tres maneras distintas:"""
  18.  
  19. lineas = texto.split('\n')
  20. database = {}
  21. for linea in lineas:
  22.     campos = re.split(' ', linea, maxsplit=1)
  23.     if len(campos) < 2:
  24.         continue
  25.     if not campos[0] in database:
  26.         database[campos[0]] = []
  27.     database[campos[0]].append(campos[1])
  28. print(database)

Salida:
Código: [Seleccionar]
{'100': ['Vamos a comenzar con una breve discusión acerca de terminología.',
 'En una lección previa, dependiendo del sistema operativo de tu',
 'computadora: Mac, Windows, Linux, viste cómo se envía información',
'a la ventana de “comando de salida” en tu editor de texto mediante',
 'la utilización del comando print de Python.'],
 '101': ['El lenguaje de programación Python es del tipo orientado a objetos.',
 'Esto quiere decir que está construido alrededor de un tipo especial de',
 'entidad, un objeto, que contiene a la vez datos así como una serie de',
'métodos para acceder y alterar los datos. Una vez que se crea un objeto',
'se puede interactuar con otros objetos.'],
'102': ['En el ejemplo de arriba vimos un tipo de objeto, la cadena (string)',
'“Hola Mundo”. La cadena es la secuencia de una serie de caracteres',
'encerrados entre comillas. Puedes escribir una cadena de tres maneras distintas:']}
« Última modificación: 05 de Noviembre de 2021, 06:15:18 por Picuino »

Desconectado Daniel1952

  • PIC16
  • ***
  • Mensajes: 127
Re:Expresiones regulares, buscar en un archivo de texto.
« Respuesta #23 en: 05 de Noviembre de 2021, 18:42:43 »
Hola Picuino ¿Cómo estas? despacito estoy digeriendo este código, desde ya gracias.-
A vos y el resto que te lean les deseo un bello bello fin de semana, no me extrañen.-
slds. Daniel
« Última modificación: 05 de Noviembre de 2021, 23:01:53 por Daniel1952 »
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-

Desconectado Picuino

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5878
    • Picuino
Re:Expresiones regulares, buscar en un archivo de texto.
« Respuesta #24 en: 06 de Noviembre de 2021, 08:26:38 »
Igual con un lemario se te ocurren más programas interesantes.
El lemario es una lista con todas las palabras del castellano. Puedes buscar palabras que rimen, que falten en un crucigrama, etc.

https://github.com/olea/lemarios/blob/master/lemario-general-del-espanol.txt
« Última modificación: 08 de Noviembre de 2021, 10:16:35 por Picuino »


 

anything