HOWTO · Python
Python Encontrar Cordel em Ficheiro
O tutorial demonstra como procurar uma string num ficheiro de texto em Python.
O tutorial explica como encontrar uma string específica num ficheiro de texto em Python.
Utilize o ficheiro readlines() Método para encontrar uma string num ficheiro em Python
O método Pyton readlines() devolve o conteúdo do ficheiro dividido para uma lista pela nova linha. Podemos utilizar o laço for para iterar através da lista e utilizar o operador in para verificar se a string está na linha em cada iteração.
Se a string for encontrada na linha, devolve True e quebra o laço. Se a string não for encontrada após a iteração de todas as linhas, retorna False eventualmente.
Um código de exemplo para esta abordagem é dado abaixo:
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
Utilize o ficheiro read() Método para procurar uma string num ficheiro em Python
O método read() devolve o conteúdo do ficheiro como uma string completa. Depois podemos utilizar o operador in para verificar se a string está na string devolvida.
Um código de exemplo é dado abaixo:
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
Utilize o método find para procurar uma string num ficheiro em Python
Um método find simples pode ser utilizado com o método read()para encontrar a string no ficheiro. O método find é passado a string necessária. Retorna 0 se a string for encontrada e -1 se a string não for encontrada.
Um código de exemplo é dado abaixo.
file = open("temp.txt", "w")
file.write("blabla is nothing.")
file.close()
print(open("temp.txt", "r").read().find("blablAa"))
Resultado:
-1
Utilize o módulo mmap para procurar uma string num ficheiro em Python
O módulo mmap também pode ser utilizado para encontrar uma string num ficheiro em Python e pode melhorar o desempenho se o tamanho do ficheiro for relativamente grande. O método mmap.mmap() cria um objecto semelhante a uma string em Python 2 que verifica apenas o ficheiro implícito e não lê o ficheiro inteiro.
Um código de exemplo em Python 2 é dado abaixo:
# 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
Contudo, em Python3 e superior, o mmap não se comporta como o objecto semelhante a uma string, mas cria um objecto bytearray. Assim, o método find procura por bytes e não por strings.
Um código de exemplo para isto é dado abaixo:
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