HOWTO · Python
Python encuentra la cadena en el archivo
El tutorial demuestra cómo buscar una cadena en un archivo de texto en Python.
En esta página
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