Python encuentra la cadena en el archivo

Syed Moiz Haider 30 enero 2023
  1. Utiliza el método del archivo readlines() para encontrar una cadena en un archivo en Python
  2. Usa el método del archivo read() para buscar una cadena en un archivo en Python
  3. Use el método find para buscar una cadena en un archivo en Python
  4. Use el módulo mmap para buscar una cadena en un archivo en Python
Python encuentra la cadena en el archivo

El tutorial explica cómo encontrar una cadena específica en un archivo de texto en Python.

Utiliza el método del archivo readlines() para encontrar una cadena en un archivo en Python

El método readlines() del archivo de Pyton devuelve el contenido del archivo dividido en una lista por la nueva línea. Podemos usar el bucle for para iterar a través de la lista y usar el operador in para comprobar si la cadena está en la línea en cada iteración.

Si la cadena se encuentra en la línea, devuelve True y rompe el bucle. Si la cadena no se encuentra después de iterar todas las líneas, devuelve False eventualmente.

Un ejemplo de código para este enfoque se da a continuación:

file = open("temp.txt", "w")
file.write("blabla is nothing.")
file.close()


def check_string():
    with open("temp.txt") as temp_f:
        datafile = temp_f.readlines()
    for line in datafile:
        if "blabla" in line:
            return True  # The string is found
    return False  # The string does not exist in the file


if check_string():
    print("True")
else:
    print("False")

Resultado:

True

Usa el método del archivo read() para buscar una cadena en un archivo en Python

El método read() devuelve el contenido del archivo como una cadena completa. Entonces podemos usar el operador in para comprobar si la cadena está en la cadena devuelta.

A continuación se da un código de ejemplo:

file = open("temp.txt", "w")
file.write("blabla is nothing.")
file.close()


with open("temp.txt") as f:
    if "blabla" in f.read():
        print("True")

Resultado:

True

Use el método find para buscar una cadena en un archivo en Python

Se puede usar un simple método find con el método read() para encontrar la cadena en el archivo. Al método find se le pasa la cadena requerida. Devuelve 0 si se encuentra la cadena y -1 si no se encuentra la cadena.

A continuación se da un código de ejemplo.

file = open("temp.txt", "w")
file.write("blabla is nothing.")
file.close()

print(open("temp.txt", "r").read().find("blablAa"))

Resultado:

-1

Use el módulo mmap para buscar una cadena en un archivo en Python

El módulo mmap también puede ser usado para encontrar una cadena en un archivo en Python y puede mejorar el rendimiento si el tamaño del archivo es relativamente grande. El método mmap.mmap() crea un objeto similar a una cadena en Python 2 que comprueba sólo el archivo implícito y no lee el archivo completo.

A continuación se muestra un código de ejemplo en Python 2:

# python 2

import mmap

file = open("temp.txt", "w")
file.write("blabla is nothing.")
file.close()

with open("temp.txt") as f:
    s = mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ)
    if s.find("blabla") != -1:
        print("True")

Resultado:

True

Sin embargo, en Python 3 y superiores, mmap no se comporta como el objeto de tipo cadena sino que crea un objeto de tipo bytearray. Así que el método find busca bytes y no cadenas.

Un ejemplo de código para esto se da a continuación:

import mmap

file = open("temp.txt", "w")
file.write("blabla is nothing.")
file.close()

with open("temp.txt") as f:
    s = mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ)
    if s.find(b"blabla") != -1:
        print("True")

Resultado:

True
Syed Moiz Haider avatar Syed Moiz Haider avatar

Syed Moiz is an experienced and versatile technical content creator. He is a computer scientist by profession. Having a sound grip on technical areas of programming languages, he is actively contributing to solving programming problems and training fledglings.

LinkedIn

Artículo relacionado - Python String

Artículo relacionado - Python File