Búsqueda de cadenas de texto con Python – Find()

por | 23 mayo, 2017

1. Búsqueda de cadenas de texto con Python – Find()

1.1 Introducción

Es bastante común llevar a cabo la búsqueda de cadenas de texto en ficheros o simplemente en variables de tipo texto, en nuestro caso leeremos un fichero y buscaremos un trozo de texto como por ejemplo un nombre en el contenido de un fichero.

Antes de comenzar este manual recomendamos echar un ojo al anterior manual ‘Leer ficheros con Python – Línea a línea

1.2 Crear fichero de ejemplo

El primer paso será crear un fichero con el que trabajaremos este ejemplo, para llevar a cabo este paso asumiremos que trabajamos en un entorno Linux (como Raspbian de Raspbery Pi), en este entorno ejecutaremos los siguientes comandos en nuestra consola:

  • Crearemos la siguiente carpeta ‘EjemplosTextos‘ con los siguientes comandos en la consola de nuestra Raspberry Pi:

cd /home/pi
mkdir EjemplosTextos
cd EjemplosTextos

  • Crearemos un fichero llamado ‘Ejemplo.txt‘ donde introduciremos nuestro nombre y apellidos. Recomendamos usar el siguiente ejemplo:

echo «Antonio Fenandez Martinez» >> Ejemplo.txt
echo «Jose Torres Contreras» >> Ejemplo.txt
echo «Ana Sanjuan Leyva» >> Ejemplo.txt

  • Comprobaremos el contenido del fichero ‘Ejemplo.txt‘ usando en la consola el siguiente comando:

more /home/pi/EjemplosTextos/Ejemplo.txt

1.3 Búsqueda de cadena por línea – find()

El método o función que usaremos se denomina ‘find()‘, esta función busca un trozo de cadena y nos devuelve como resultado su posición numérica conforme a la línea de texto analizada, el modo de empleo es tan sencillo como almacenar la línea de texto en una variable y usar el método find() indicando entre los paréntesis el texto que queremos buscar. A continuación os dejamos un ejemplo del modo en que se declara:

VariableTexto = «Este es el texto donde quiero buscar»
PosicionTexto = VariableTexto.find(«quiero»)
print(PosicionTexto)

Hay modos más fáciles de explicar pero por suerte para nuestros lectores nos mola el riesgo y el gustito que darnos cabezazos con las paredes, así pues, haremos lo siguiente… definiremos en el propio código el nombre a buscar, leeremos línea a línea el fichero creado en el punto 1.2 e imprimiremos el número de línea donde encontremos la primera coincidencia.

Esta sería la estructura del código resultante de nuestro reto:

TextoABuscar = «Torres»

PosicionTexto = -1

NumeroLinea = 0

with open(“/home/pi/EjemplosTextos/Ejemplo.txt”, ‘r’) as ObjFichero:

for line in ObjFichero:

NumeroLinea = NumeroLinea + 1

PosicionTexto = line.find(TextoABuscar)

if PosicionTexto >= 0:

print («El texto se encuentra en la línea %i» % NumeroLinea)

break

Nota: Si os surgen dudas con respecto a tipos de datos recomendamos dar un repaso al artículo ‘Python (Parte 3) – Tipos de datos

Vamos avanzado! de aquí a nada seremos cracks de la programación! 😀

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.