Python Rechercher une chaîne dans un fichier

Syed Moiz Haider 30 janvier 2023
  1. Utilisez la méthode File readlines() pour trouver une chaîne de caractères dans un fichier en Python
  2. Utilisez la méthode File read() pour rechercher une chaîne de caractères dans un fichier en Python
  3. Utilisez la méthode find pour rechercher une chaîne dans un fichier en Python
  4. Utiliser le module mmap pour rechercher une chaîne de caractères dans un fichier en Python
Python Rechercher une chaîne dans un fichier

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

Article connexe - Python String

Article connexe - Python File