HOWTO · Python

Python Rechercher une chaîne dans un fichier

Le tutoriel montre comment rechercher une chaîne de caractères dans un fichier texte en Python.

Le tutoriel explique comment trouver une chaîne spécifique dans un fichier texte en Python.

Utilisez la méthode File readlines() pour trouver une chaîne de caractères dans un fichier en Python

La méthode Pyton file readlines() retourne le contenu du fichier divisé en une liste par la nouvelle ligne. Nous pouvons utiliser la boucle for pour itérer à travers la liste et utiliser l’opérateur in pour vérifier si la chaîne est dans la ligne à chaque itération.

Si la chaîne est trouvée dans la ligne, elle retourne True et interrompt la boucle. Si la chaîne n’est pas trouvée après avoir itéré toutes les lignes, elle retourne éventuellement False.

Un exemple de code pour cette approche est donné ci-dessous :

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")

Production :

True

Utilisez la méthode File read() pour rechercher une chaîne de caractères dans un fichier en Python

La méthode file read() retourne le contenu du fichier sous la forme d’une chaîne entière. Ensuite, nous pouvons utiliser l’opérateur in pour vérifier si la chaîne se trouve dans la chaîne retournée.

Un exemple de code est donné ci-dessous :

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")

Production :

True

Utilisez la méthode find pour rechercher une chaîne dans un fichier en Python

Une simple méthode find peut être utilisée avec la méthode read() pour trouver la chaîne de caractères dans le fichier. La méthode find est passée la chaîne de caractères requise. Elle retourne 0 si la chaîne est trouvée et -1 si elle ne l’est pas.

Un exemple de code est donné ci-dessous.

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

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

Production :

-1

Utiliser le module mmap pour rechercher une chaîne de caractères dans un fichier en Python

Le module mmap peut également être utilisé pour trouver une chaîne de caractères dans un fichier en Python et peut améliorer les performances si la taille du fichier est relativement importante. La méthode mmap.mmap() crée un objet de type chaîne de caractères en Python 2 qui vérifie uniquement le fichier implicite et ne lit pas le fichier entier.

Un exemple de code en Python 2 est donné ci-dessous :

# 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")

Production :

True

Cependant, en Python 3 et supérieur, mmap ne se comporte pas comme l’objet de type chaîne de caractères mais crée un objet de type bytearray. Ainsi, la méthode find recherche des octets et non des chaînes de caractères.

Un exemple de code pour cela est donné ci-dessous :

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")

Production :

True